IOS应用内购买(In-App Purchase)详细教程

IOS应用内购买(In-App Purchase)详细教程_第1张图片
DLInAppPurchase

前言

最近公司要添加应用内购买,其中遇到了一些坑,查到的资料要不是就是很老,要不就是不太全。写个文章分享一下!宗旨就是多看图,看图能弄明白的不看文章,代码能弄懂得不看文章。

具体流程

  1. 完善协议、税务和银行业务信息
    这一部分具体可以参考iOS App提交指南(二)-协议、税务和银行业务

    IOS应用内购买(In-App Purchase)详细教程_第2张图片
    协议、税务和银行业务

  2. 添加测试用户
    用户和职能中添加测试用户方便测试支付。

    IOS应用内购买(In-App Purchase)详细教程_第3张图片
    添加测试用户一

    IOS应用内购买(In-App Purchase)详细教程_第4张图片
    添加测试用户二

    **注意:在用真机测试应用内支付的时候退出之前的APPLE账号,用注册的测试账户登录 **

  3. 添加内购项目
    进入iTunesConnect中在功能中添加App内购买项目

    IOS应用内购买(In-App Purchase)详细教程_第5张图片
    添加内购项目一

    **注意:绿色框内的文字在5中详细描述 **
    IOS应用内购买(In-App Purchase)详细教程_第6张图片
    添加内购项目二

  4. 在项目中开启In-App Purchase
    在Xcode中开启In-App Purchase功能

    IOS应用内购买(In-App Purchase)详细教程_第7张图片
    项目中开启In-App Purchase

  5. 提交新的版本
    这个是我之前遇到的坑,我看的文章都是创建好内购项目之后就可能在项目中使用测试了,当时我的结果就是无效productID。绿色框中写的很明白要重新提交二进制文件(.ipa文件),新的版本中添加在步骤3中添加的内购项目。

    IOS应用内购买(In-App Purchase)详细教程_第8张图片
    重新提交二进制文件

    **注意:最好选择手动发布,因为本次提交只是为了让创建的内购项目ID生效,项目中可以没有关于内购的逻辑代码 **

  6. 代码实现
    直接看Demo没有Demo都是流氓。DLInAppPurchase

  7. 服务器端验证支付

    IOS应用内购买(In-App Purchase)详细教程_第9张图片
    购买凭证

    **注意: 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开发的那些坑

你可能感兴趣的:(IOS应用内购买(In-App Purchase)详细教程)