iOS内购流程文档-Lion

iOS内购流程:

iOS内购 什么时候用到呢? 虚拟产品就需要用到iOS内购;
购买的商品,是在本app中使用和消耗的,就一定要用内购,否则会被拒绝上线,例如:游戏币,在线书籍,app中使用的道具等。

重要的大概步骤:

内购步骤大步骤有4步:

1,填写协议,税务和银行业务;
2,填写用户和职能; 创建内购的项目
3,写代码,和后台配合
4,添加项目内购测试账号;检验成果

填写协议,税务和银行业务一共有21个步骤需要完成;

以下是具体步骤:

一、先到iTunes Connect上填写协议、税务和银行业务(如下图)

如果是外包公司开发的,那么外包会让客户填写这一堆信息;如果只是产品公司的技术开发人员,那么你可以让项目负责人填写这一堆信息;


第一步

第二步

第三步

第四部

第五步

先点击Contact Info 的Set Up


第六步

第七步

第八步

第九步

第十步

第十一步

第十二步
进行十二步的时候可能有些银行通过下面的Look up CNAPS Code方法查不到,就需要借助百度了,一定要准确查询,否则会有问题。

第十三步
这一步需要注意的是,货币类型可能有歧义,选择了CNY,支持国产。还有一点,银行账号如果是对公的账号,需要填写公司的英文名称,如果没有的话,上拼音!然后点击保存银行信息就算ok了,然后退回到最开始的页面

第十四步

第十五步

第十六步

第十七步

第十八步

第十九步

第二十步

第二十一步(完成)

二、为app添加内购产品

在iTunes Connect在你要添加内购的app中,进入到功能页面


添加内购项目

在你点击添加内购产品按钮后会有弹框,提示你选择类型,这个就要看你app的需求了


选择类型

名称和定价

本地化版本

填写审核信息(现在的图)

填写完审核信息后,点击右上角的“存储”按钮,就添加了一个内购产品~

三、添加沙盒技术测试员

在iTunes Connect的用户和智能中选择“沙盒技术测试员”,填写信息保存以后就有一个测试员了


添加沙盒测试员

购买成功后我们iOS前端可以单独在客户端完成订单正确性的验证。但是因为有的项目后台要Android和iOS两端生成账单便于对账。所以我们请求后台接口,服务器处验证是否支付成功,依据后台返回结果做相应逻辑处理。

(PS:订单正确性的验证本来可以是:iOS客户端(购买成功)→ 前端到苹果服务器验证→处理苹果返回结果做相应逻辑处理; 现在:iOS客户端(购买成功)→ 后台→后台到苹果服务器验证→处理后台返回结果做相应逻辑处理)

服务器要做的是:

1.接收iOS前端发过来的购买凭证。

2.判断凭证是否已经存在或验证过,然后存储该凭证。

3.将该凭证发送到对应环境下的苹果服务器验证,并将验证结果返回给客户端。

4.根据需求,是否修改用户相应信息。

注意事项

1.bundleID要与iTunes Connect上你App的相同,不然是请求不到产品信息的

2.在沙盒环境进行测试内购的时候,要使用没有越狱的苹果手机。

3.在沙盒环境下真机测试内购时,请去app store中注销你的apple ID,不然发起支付购买请求后会直接case:SKPaymentTransactionStateFailed。使用沙盒测试员的账号时不需要真正花钱的。

4.如果只添加了一个沙盒测试员账号,当一个真机已经使用了这个账号,另一个真机再使用这个账号支付也是会发生错误的。那就去多建几个沙盒测试员账号使用不同的,反正也是免费的,填写也很快。

5.监听购买结果,当失败和成功时代码中要调用:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

该方法通知苹果支付队列该交易已完成,不然就会已发起相同 ID 的商品购买就会有此项目将免费恢复的提示。

请在本地做一下凭证存储

现在订单正确性的验证是:iOS客户端(购买成功)→ 后台→后台到苹果服务器验证→处理后台返回结果做相应逻辑处理。


--

针对图上的情况:当我们前端购买成功后,凭证本地保留一份,当与后台验证成功后,再将本地保留的凭证删除。否者一直使用本地已经保留的凭证与后台交互。

作者:会跳舞的狮子 链接:http://www.jianshu.com/p/b16e323ecd39 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。