介绍
内购的话,需要和苹果3/7分成!!!! 操作篇直接看参考链接
iOS应用如果涉及到支付功能,分为两类:第三方支付和苹果内购。那么什么情况下选择使用第三方支付,又在什么情况下选择苹果内购呢
购买的内容如果要在 app 内部使用,必须使用 IAP ,但是你要买的东西与 app 本身无关,就不能使用 IAP 。For Example:你用淘宝、京东的 app 买个鼠标,真实物品就不能使用IAP。但是要想在斗鱼app内买虚拟物品来送主播礼物,则必须使用 IAP ,不走内购就不行。
购买逻辑
简易版 前端验证 不需要服务端做事情
iOS客户端购买 --> 向苹果服务器请求商品信息 --> 发送购买请求
--> 监听购买结果,当检测到交易完成后去苹果服务器验证凭证 -->去苹果服务器验证并拿到凭证(沙盒测试环境验证和正式环境验证)-->完成交易
关于验证凭证:是为了避免越狱软件模拟苹果请求达到非法购买问题,如果不考虑这个原因,可以不实现这一步
加强版
app从服务器获取产品标识列表 --> app从app store 获取产品信息 --> 用户选择需要购买的产品 --> app 发送 支付请求到app store -->app store 处理支付请求,返回transaction信息
--> app 将transaction receipt 发送到服务器 -->服务器收到收据后发送到app stroe验证收据的有效性 --> app store 返回收据的验证结果,根据app store 返回的结果决定用户是否购买成功
注意的事项
1.bundleID要与iTunes Connect上你App的相同,不然是请求不到产品信息的
2.在沙盒环境进行测试内购的时候,要使用没有越狱的苹果手机。
3.在沙盒环境下真机测试内购时,请去app store中注销你的apple ID,不然发起支付购买请求后会直接case:SKPaymentTransactionStateFailed。使用沙盒测试员的账号时不需要真正花钱的。
4.如果只添加了一个沙盒测试员账号,当一个真机已经使用了这个账号,另一个真机再使用这个账号支付也是会发生错误的。那就去多建几个沙盒测试员账号使用不同的,反正也是免费的,填写也很快。
网友评论