近期工作中涉及iOS的自动续费,趟了很多坑,也耗费很多时间,在此记录下,欢迎后来者借鉴。
1、ios的自动续费和安卓(除华为外)的自动续费后端逻辑一样吗?
答:不一样,安卓的自动续费是由后端控制发起每月的扣款,但iOS是订阅自动续费的商品后,每月由苹果发起扣费,再通知后端,从而进行一系列业务执行。PS:华为的自动续费与iOS相同,由华为自己发起。
2、苹果沙盒环境的自动续费订阅如何测试?
实际订阅有效期 Sandbox测试有效期
1 周 3 分钟
1 个月 5 分钟
2 个月 10 分钟
3 个月 15 分钟
6 个月 30 分钟
1 年 1 小时
简单来讲,假设项目创建的商品是按月扣费的自动续费商品,则测试人员使用沙盒账号开通该自动续费商品后,每隔5min苹果会自动发起下次扣费,模拟下月的扣费情况,此时可以查看业务商品的到期时间是否延长等。
PS:一般情况下是每隔5min则扣款一次,假设用户中途有取消订阅,且当前同一商品自动扣费未超过5次,再次使用该沙盒账号订阅后,存在大于5min后执行下次扣费的可能,请QA人员耐心等待下~假设10min后依然未扣款,存在苹果扣费成功但暂未给后端发通知的可能和后端收到通知并未处理业务的可能。
3、沙盒环境中,自动续订订阅会发生几次?
答:准确来讲,一个续费商品对应的一个沙盒账号,会在开通后扣费6次。假设当前已扣款2次,测试人员手动取消了订阅,则下次使用该沙盒账号再次开通该续费商品,依然会自动执行剩余的4次扣款。(此处的扣款不是真实付费)
PS:若当前公司创建了ABCD四个自动续费商品,则同一个沙盒账号拥有4×6=24次自动扣费的机会
4、项目创建的商品曾经开通过自动续费,在App外有再次开通的可能性吗?
答:有,App外(ios 14以上的系统)在手机 设置 - App Store - 沙盒账号 - 弹出“管理” ,进入到沙箱订阅过的商品服务页,在此处可以重新订阅该续费商品,所以QA同学不要忘记此处的测试Case
一丢丢忠告~
QA同学在测试自动续费时,
1、建议测试时间多要点;
2、建议建多个沙盒账号,比如十九八个;
3、测试过程中若遇到苹果服务不稳定的情况,就自求多福吧(比如11月3号,俺就遇到了苹果服务全面挂掉的凄惨情景……
)
更
新一波,说一个被苹果折腾的死去活来的事儿
我司的连续包月商品上线后打算更新成有首月优惠的商品,在测试环境下发现商品升级后,会导致已购买普通连续包月商品(每月都是一个价格)的用户,取消订阅后购买页展示的是次月价格,但实际扣费是首月优惠的价格。
于是,产品和开发一致决定为了与呼起的首月优惠价格同步,买过普通连续包月商品的用户(只要没有享受过首月优惠商品购买)的购买页展示首月优惠价位,经历了一波开发+测试,上线了。
谁知道!!上线后这类用户实际扣费呼起的支付价格又变成次月价格了!!!测试环境说好了首月价格呢!!你们咋各玩各的啊???
于是,我们再次打算让这类用户的购买页与呼起价格保持同步,技术小哥哥小姐姐们又是一通忙活后部署到测试环境,然鹅测试的时候发现……购买过普通连续包月的用户,在商品升级为首月优惠后,呼起的价格也是次月价格了,与正式环境同步了!!!MD,那之前测了那么多次呼起的首月价格是闹呢???
所以……
发生了什么……
我是谁我在哪……