ios发布证书添加测试设备(带你一图了解iOS应用内购买流程)(1)

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)

ios发布证书添加测试设备(带你一图了解iOS应用内购买流程)(2)

测试环境的购买流程和正式是一样的,上线后创建的商品立即变成线上的

选择好之后开始创建,需要输入标题,产品ID,价格等

ios发布证书添加测试设备(带你一图了解iOS应用内购买流程)(3)

内购项目类型有四种

第一种是消耗型项目,它购买后只能使用一次,使用后失效,比如代币,购买完代币后,代币可以继续购买app其他商品

第二种是非消耗型项目,只需要购买一次,无需重复购买,这个是和appleID绑定的,比如游戏的道具,后面即使卸载游戏再重新安装,道具都存在

第三种是自动续期订阅,这个是首次购买后,之后每次时限到期都会自动续费,无需再输密码,也不用重新购买,除非手动取消,比如连续包月会员

第四种是非续期订阅,这个是有时限性的产品,可以重复购买,每次购买时效都会累加

测试方法

根据测试流程,对每一步进行校验;

通过查看或构造接口,查看日志,查看数据库信息,等等手段,确定问题出现在哪一步

ios发布证书添加测试设备(带你一图了解iOS应用内购买流程)(4)

这就是我对iOS的app内购买测试的一点经验和心得,欢迎留言讨论哦~

,