最近在开发新的 App,因为包含了一个自动订阅的内购,因此需要根据订购信息判断该内购产品是否仍然处在有效期。但是,由于仍然在测试中,非生产环境,且苹果也没有提供删除测试订单的功能。

经过一番查找,原来苹果是提供了解决方案的。如下图:

简单说就是,对于订阅产品,实际的有效时间和测试环境的有效时间是有区别的。

比如,如果该产品是每年订阅的,那么在测试环境中的有效期就是 1 个小时。

之所以缩短测试环境中的有效时长,也是为了方便开发者。

除此之外,在获取订阅信息的时候,也会返回该订阅的详细信息:

SwiftyStoreKit.verifySubscriptions(productIds: productIds, inReceipt: receipt)

执行上述代码,有三种可能状态(且包含了具体信息,包括过期时间等)

  • purchased
  • expired
  • noPurchased

因此我们就能够很好的处理自定订阅的问题了。

Categorized in:

Tagged in:

, , ,