前言
最近公司要添加应用内购买,其中遇到了一些坑,查到的资料要不是就是很老,要不就是不太全。写个文章分享一下!宗旨就是多看图,看图能弄明白的不看文章,代码能弄懂得不看文章。
具体流程
-
完善
协议、税务和银行业务
信息
这一部分具体可以参考iOS App提交指南(二)-协议、税务和银行业务
-
添加测试用户
在用户和职能
中添加测试用户方便测试支付。
**注意:在用真机测试应用内支付的时候退出之前的APPLE账号,用注册的测试账户登录
** -
添加内购项目
进入iTunesConnect中在功能
中添加App内购买项目
**注意:绿色框内的文字在5中详细描述
**
-
在项目中开启In-App Purchase
在Xcode中开启In-App Purchase
功能
-
提交新的版本
这个是我之前遇到的坑,我看的文章都是创建好内购项目之后就可能在项目中使用测试了,当时我的结果就是无效productID。绿色框中写的很明白要重新提交二进制文件(.ipa文件),新的版本中添加在步骤3中添加的内购项目。
**注意:最好选择手动发布,因为本次提交只是为了让创建的内购项目ID生效,项目中可以没有关于内购的逻辑代码
** 代码实现
直接看Demo没有Demo都是流氓。DLInAppPurchase-
服务器端验证支付
**注意: NSString *receipt = [receiptData base64EncodedStringWithOptions:0];Options参数传0不要传NSDataBase64Encoding64CharacterLineLength
**
- 接收ios端发过来的购买凭证(上图中的receipt)。
- 判断凭证是否已经存在或验证过,然后存储该凭证。
- 将该凭证发送到苹果的服务器验证,并将验证结果返回给客户端(接口文档击这里)。
- 如果需要,修改用户相应的会员权限。
参考和相关文章
- 唐巧的技术博客iOS应用内付费(IAP)开发步骤列表
- Charly张的博客IOS应用内购买App开发完整流程
- Troy的博客 In App Purchases: A Full Walkthrough
- AppleDeveloperValidating Receipts With the App Store
- Stackoverflow上Sending In-App Purchase receipt data to my server
- 谦言忘语的简书【iOS】苹果IAP(内购)中沙盒账号使用注意事项
- 出头天等待咸鱼的简书【iOS开发】IAP开发的那些坑