美文网首页
swift iOS内购

swift iOS内购

作者: 木头炫 | 来源:发表于2022-05-23 09:10 被阅读0次

一.使用轮子SwiftyStoreKit

二.方法

在程序入口didFinishLaunchingWithOptions  //程序启动时在AppDelegate添加观察者,监测购买结果状态,并根据需求作出相应处理。

1.监听自动续费订单

因为自动订阅类型,除了第一次购买行为是用户主动触发的。后续续费都是Apple自动完成的,一般在要过期的前24小时开始,苹果会尝试扣费,扣费成功的话会在APP下次启动的时候主动推送给APP。所以,APP启动的时候一定要添加上面的那句话。

用到SwiftyStoreKit.completeTransactions

这里的监听只是在重新进入app调用,将苹果放在队列里的订单监听到,然后你可以在回调里做相应的处理

2.订单支付 SwiftyStoreKit.purchaseProduct

这里面要传一个 productId (产品ID ) 这个id是你在app创建内购时填写的产品id,即你要支付那个订单,就直接填写对应的产品id就行

3.需要注意的问题,

(1)漏单怎么处理,我们的处理方式时添加一个恢复权益的按钮,点击时,将收据Receipt传给后台,后台去appstore请求所有的订单,然后将订单信息同步到我们的数据库,并且同步会员信息

(2)AppleID 怎么跟用户关联 后台获取到的订单信息json里 latest_receipt_info字典里有一个 original_transaction_id 这个id是跟appleID关联的,so,你可以用original_transaction_id跟用户关联

(3)服务器验证收据 https://www.jianshu.com/p/aba2edbb7871

(4)恢复以前的购买

使用restorepurchase方法恢复已完成的事务。当成功时,该方法返回所有非消耗品购买,以及所有自动更新的订阅购买,而不管它们是否已过期。

(5)获取收据(已加密)

 SwiftyStoreKit.fetchReceipt(forceRefresh:true, completion: <#T##(FetchReceiptResult) -> Void#>)

如果为forceRefresh = false,则从文件返回本地收据,如果丢失,则刷新它。

如果为forceRefresh = true,则始终刷新收据。

(6)收据验证的环境

在sandbox中验证receipt:https://sandbox.itunes.apple.com/verifyReceipt

在生产环境中验证receipt:https://buy.itunes.apple.com/verifyReceipt

(7)识别沙盒环境下收据的方法有两种:

1.根据收据字段 environment = sandbox。

2.根据收据验证接口返回的状态码。如果status=21007,则表示当前的收据为沙盒环境下收据

苹果反馈的状态码:

21000 App Store无法读取你提供的JSON数据

21002 收据数据不符合格式

21003 收据无法被验证

21004 你提供的共享密钥和账户的共享密钥不一致

21005 收据服务器当前不可用

21006 收据是有效的,但订阅服务已经过期。当收到这个信息时,解码后的收据信息也包含在返回内容中

21007 收据信息是测试用(sandbox),但却被发送到产品环境中验证

21008 收据信息是产品环境中使用,但却被发送到测试环境中验证

相关文章

  • swift iOS内购

    一.使用轮子SwiftyStoreKit 二.方法 在程序入口didFinishLaunchingWithOpti...

  • iOS 苹果内购流程

    本文参考: iOS开发之内购完全笔记 iOS开发内购全套图文教程 iOS应用程序内购/内付费(一) 代码...

  • iOS内购流程文档-Lion

    iOS内购流程: iOS内购 什么时候用到呢? 虚拟产品就需要用到iOS内购;购买的商品,是在本app中...

  • iOS-内购

    前言:关于iOS内购,参考两篇博文 iOS-iOS内购流程(手把手图文教程)iOS内购你看我就够了(埋坑篇) 我自...

  • iOS内购一条龙------项目代码 (4)

    步骤一 iOS内购一条龙------账户信息填写(1)步骤二 iOS内购一条龙------配置内购产品ID (2)...

  • iOS内购一条龙------内购测试账号 (3)

    步骤一 iOS内购一条龙------账户信息填写(1)步骤二 iOS内购一条龙------配置内购产品ID (2)...

  • swift 内购

    1.0 内购类型 a. 消耗型商品:只可以使用一次的产品,使用以后即失效,必须再次购买。示例:小说App购买的书币...

  • iOS 内购 IAP

    1. iOS内购IAP(一) —— 基础配置篇(一)2. iOS内购IAP(二) —— 工程实践(一)3. iOS...

  • 应用内购(In-App Purchase)常见问题解答

    应用内购(In-App Purchase)常见问题解答iOS的应用内购买 iAP 坑 iOS内购你看我就够了(一)...

  • iOS内购从放弃到上架

    iOS内购方面的坑

网友评论

      本文标题:swift iOS内购

      本文链接:https://www.haomeiwen.com/subject/fsifahtx.html