iOS购买商品流程:
iOS购买商品的流程比较复杂,app内付费商品都是放到app store中,涉及到和苹果服务器的交互,所以我大概画了一个流程图,之后的测试步骤也是根据这个流程拆分的
可以看到从我方app到苹果服务器的购买成功的流程,一共发送了8次请求+响应
第1次:客户端上选中商品并点击购买按钮,将购买请求发送到苹果服务器
第2次:
1.根据购买请求,苹果服务器购买对应的商品,
2.弹出对应商品信息弹窗让用户确认购买信息,并让用户输入账号和密码购买
3.购买成功后将扣款结果和票据信息返回客户端,并弹出完成购买弹窗
第3次:我方app客户端将票据信息发送到我方app服务端,
第4次:服务端拿到票据信息,去苹果服务器校验票据信息是否正确
第5次:返回校验结果,服务端根据票据信息再次购买后台对应商品,相关数据库表数据更新
第6次:服务端将购买校验结果返回到客户端,客户端得到购买结果并弹出购买成功弹窗
第7次:客户端得到购买结果后图片购买后使用期限,发起请求到服务端,拉取最新的用户信息
第8次:服务端将用户信息返回客户端,客户端刷新页面
测试环境iOS商品购买
沙盒环境是什么
我们在购买ios虚拟商品时,不知道你有没有发现它无法使用第三方支付,这是因为购买操作是在App Store中进行的,所以我们在测试购买功能时,需要在App Store内我们的app下创建内购商品,app审核未通过还未上线时默认是苹果测试环境(也叫沙盒环境,沙箱环境,sandbox)
测试环境的购买流程和正式是一样的,上线后创建的商品立即变成线上的
选择好之后开始创建,需要输入标题,产品ID,价格等
内购项目类型有四种:
第一种是消耗型项目,它购买后只能使用一次,使用后失效,比如代币,购买完代币后,代币可以继续购买app其他商品
第二种是非消耗型项目,只需要购买一次图片购买后使用期限,无需重复购买,这个是和appleID绑定的,比如游戏的道具,后面即使卸载游戏再重新安装,道具都存在
第三种是自动续期订阅,这个是首次购买后,之后每次时限到期都会自动续费,无需再输密码,也不用重新购买,除非手动取消,比如连续包月会员
第四种是非续期订阅,这个是有时限性的产品,可以重复购买,每次购买时效都会累加
测试方法
根据测试流程,对每一步进行校验;
通过查看或构造接口,查看日志,查看数据库信息,等等手段,确定问题出现在哪一步
这就是我对iOS的app内购买测试的一点经验和心得,欢迎留言讨论哦~
本文到此结束,希望对大家有所帮助!