开发者社区> 问答> 正文

SwiftyStoreKit-如何正确恢复自动续订订阅?

因此,我有一个非常基本的概念,自动可再生的订阅,在应用程序中,解锁专业功能。我也有一个非消费购买,这是一个“一次性购买订阅”,其中解锁专业功能一劳永逸。

当我打电话的时候restorePurchases(使用SwiftyStoreKit)它带来了用户所做的所有购买。这些可能包括多次购买相同的订阅,而这些订阅很久以前就过期了。

我接下来要做的就是我称之为verifyPurchase方法检查已购买的每个订阅的过期日期,如果过期,则通过清除密钥链(因为它认为当前订阅过期)从用户那里删除PRO:

case .expired(let expiryDate, let items):
             log.info("Subscription has expired on \(expiryDate)")
             log.debug(items)
             self.activeSubscription = nil
             self.clearStore()
             seal.reject(SubscriptionServiceError.expired(on: expiryDate))
  }

因此,我的应用程序中当前发生的情况是,即使用户有一个活动订阅,如果他或她试图restorePurchases,有可能verifyPurchase最后一次要验证的是过期订阅,结果是取消了该应用程序的PRO版本,即使上面有一个活动订阅。

什么是最好的做法,以避免这一错误,并始终验证一个和唯一正确的订阅?

展开
收起
游客5akardh5cojhg 2019-12-17 15:50:03 2779 0
0 条回答
写回答
取消 提交回答
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载