我正在创建一个带有自动续订订阅的 iOS 应用程序。我一直在阅读很多教程和文档,但我对如何处理某些场景有点困惑。
这是我的应用程序的工作方式:
- 用户安装应用
- 用户在注册流程中创建帐户
- 要求用户选择计划并在注册流程中付款
- 付款收据上传到我的服务器,我在我的数据库中激活他们的帐户。
- 我的服务器会定期轮询
/verifyReceipt
端点以更新用户的帐户或停用它,具体取决于来自苹果的最新信息。(或使用 Apple 的新状态更新通知,两者的目的都是为了让我在我的服务器上获取最新的订阅信息)
订阅续订一个月后,我知道交易将出现在SKPaymentQueue
用户的设备上。因此,许多教程/文档建议让您AppDelegate
实现SKPaymentTransactionObserver
协议,以便您可以随时处理事务。
但是,我没有使用AppDelegate
. 我在注册时使用了视图控制器,用户选择他们的计划来实施SKPaymentTransactionObserver
。
我的理由是,既然我在后端获取信息,我是否需要关心每个月在订阅续订时将出现在客户端队列中的交易?我不能忽略这些交易,还是需要调用queue.finishTransaction
它们?
我还阅读了一些有关在用户删除应用程序并重新安装或获得新手机时恢复交易的内容。再说一次,我需要担心这个吗?因为我仍然应该知道后端的订阅,并且用户在获得新手机时所要做的就是登录他们的帐户以获得我的服务,它会检查后端以查看他们的订阅是否处于活动状态。
我想我更大的问题是:当您有一个后端来处理 IAP 自动续订订阅时,您是否可以忽略客户端上发生的一些带有支付队列的事情,因为该功能是为没有后端的应用程序构建的。