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

简单说就是,对于订阅产品,实际的有效时间和测试环境的有效时间是有区别的。
比如,如果该产品是每年订阅的,那么在测试环境中的有效期就是 1 个小时。
之所以缩短测试环境中的有效时长,也是为了方便开发者。
除此之外,在获取订阅信息的时候,也会返回该订阅的详细信息:
SwiftyStoreKit.verifySubscriptions(productIds: productIds, inReceipt: receipt)
执行上述代码,有三种可能状态(且包含了具体信息,包括过期时间等)
- purchased
- expired
- noPurchased
因此我们就能够很好的处理自定订阅的问题了。
swift真方便,RN哭了
是啊,其实我原本也用过跨平台开发技术,但用过原生之后,发现其实工作量也没有增加多少,甚至是可以减少的