首页 > 代码库 > 苹果内购流程详解

苹果内购流程详解

苹果内购主要分为两部分

itunnes 相关配置

一.在itunnes 上配置相关信息资料

首先需要配置一些前提条件,详细步骤如下

1.进入itunnes选择协议,税务银行业务

技术分享

 

2.完善资料信息,主要有3项(联系人,银行信息,税务信息)

技术分享

 

 4.完善联系人信息,一般填申请开发者账号人员的信息,可以修改

技术分享

 

 

技术分享

 

 

技术分享

 

 5.完善银行信息 需要银行支付号(就是开户银行的一个标识),银行卡持有人名字

技术分享

 

 

技术分享

 

 

6.完善税务信息 
技术分享
7.以下默认选择no

技术分享

技术分享

 

8.确认界面,下图可能不太对,当时我是上下2个界面,第四项要上下一致才行 

技术分享
二.上面资料完善后换需要配置相关虚拟物品
1.选择应用
 
技术分享
 


2.选择功能,我们添加一个app内购项目。

技术分享
 

 


3.选择类型

a.可消费的产品  使用一次,之后就会耗尽,必须再次购买

b.非消耗品   一次购买的产品,不会到期,这种物品一般来说要使用恢复购买的功能

c.自动订阅类内购  这种物品会在一段时间内自动订阅
d.非自动订阅   如一次订阅一年的服务会员
技术分享
 


技术分享

 


技术分享

 


4.提交一个屏幕快照(注意尺寸大小一般是用到内购的界面),然后保存。
三.接下来需要添加沙箱测试账号,此账号是在测试环境测试内购流程的

1.点击进入用户和职能界面

技术分享
 2.选择沙盒技术测试员
技术分享

3.填写测试员信息(填写未被其他开发者使用的邮箱)

技术分享

内购实现流程
 
一实现流程
主要有两种情况
本地处理
1. 程序通过bundle存储的plist文件得到产品标识符的列表。
2. 程序向App Store发送请求,得到产品的信息。
3. App Store返回产品信息。
4. 程序把返回的产品信息显示给用户(App的store界面)
5. 用户选择某个产品
6. 程序向App Store发送支付请求
7. App Store处理支付请求并返回交易完成信息。
8. App获取信息并提供内容给用户。
 
依靠服务器处理 (一般需要一个订单号对应相应的凭证信息)
1. 程序向服务器发送请求,获得一份产品列表。
2. 服务器返回包含产品标识符的列表。
3. 程序向App Store发送请求,得到产品的信息。
4. App Store返回产品信息。
5. 程序把返回的产品信息显示给用户(App的store界面)
6. 用户选择某个产品 生成订单号
7. 程序向App Store发送支付请求
8. App Store处理支付请求并返回交易完成信息。
9. 程序从信息中获得数据,(目前是订单号和凭证)并发送至服务器。
10. 服务器将数据发给App Store来验证该交易的有效性。(主要是凭证的验证)具体可以查看https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/uid/TP40010573
11. App Store对收到的数据进行解析,返回该数据和说明其是否有效的标识。
12. 服务器读取返回的数据,确定用户购买的内容。
13. 服务器确认成功后告诉客户端。
 
技术分享
 
漏单问题
需要注意的是因为订单是和服务器保持同步的,但是购买流程在客户端,所有因为网络等问题会出现,漏单的问题,所以每次购买成功后需要本地保存一份凭证,只有当服务端验证通过后才从本地删掉,另外换需要在程序启动后在合适的时机检测是否有未处理的凭证,如果有需要给服务端验证。
官方demo
https://developer.apple.com/library/content/samplecode/sc1991/Introduction/Intro.html#//apple_ref/doc/uid/DTS40014726
 
参考  http://allluckly.cn/ios支付/iOS开发2015年最新内购教程
 

 

苹果内购流程详解