【问题标题】:SwiftUI Auto-Renewable Subscription flowSwiftUI 自动续订订阅流程
【发布时间】:2020-10-12 04:59:30
【问题描述】:

我已经在我的应用中实现了应用内购买自动续订订阅,但我不确定我是否做得正确,因为应用不断要求登录 iTunes。

在用户案例中:我订阅了每月付款,我的第一个月已经结束,并希望它自动续订。

我目前的流程如下……

  1. (在 App Delegate 中)检查收据是否有效

  2. (如果收据有效)检查所有收据的最新到期日期

  3. (如果过期 - 第一个月结束后似乎就是这种情况)调用 SKReceiptRefreshRequest 以获取最新收据。我已经对此进行了计数检查,否则它会陷入永无止境的循环。

  4. 最后检查最新收据是否实际上已过期。

这是解决此问题的正确方法吗?如果没有,您能否对此有所了解?

除了 iTunes 登录的烦恼之外,一切似乎都运行良好。我想在沙盒环境之外每月只有一次,这还不错,但只是想确保我做对了。

谢谢

【问题讨论】:

    标签: swift in-app-purchase subscription auto-renewable


    【解决方案1】:

    不要调用 SKReceiptRefreshRequest。这个请求通常只针对“恢复购买”机制。这就是为什么您要在对话中登录。只要您是支付队列的观察者,StoreKit 就会返回给您:https://developer.apple.com/documentation/storekit/skpaymentqueue/1506042-add,因此您应该在应用启动时将自己添加到支付队列中。然后让该对象保持一致以监听整个应用生命周期的变化。您将在 updatedTransactions 回调https://developer.apple.com/documentation/storekit/skpaymenttransactionobserver/1506107-paymentqueue

    中收到续订

    其次,您应该在自己的服务器上而不是在客户端上进行收据验证,因为它很容易受到 MITM 攻击。您还可以轻松控制那里的逻辑并接收最适合管理订阅的服务器到服务器通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 2013-10-08
      • 2012-10-12
      • 2014-04-17
      • 2014-03-01
      • 2013-01-27
      相关资源
      最近更新 更多