我在苹果的文档中看到,StoreKit不会自行恢复订阅。我需要通过在我的服务器上存储事务数据来自己处理这件事。这很好,但是我只能将这张收据与一个UDID (购买它的那个)关联,否则这会让我被拒绝吗?
如果这不是正确的方法,我该如何处理才能支持多个设备?(因为它们没有相同的UDID)
发布于 2011-10-20 22:34:00
如果订阅是自动更新的,事务将不会传递paymentQueue:updateTransactions方法。续订正好发生在商店上。如果您想测试它,您必须执行以下操作之一:
如果您将收据存储在您的iOS client上,则
(http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html#//apple_ref/doc/uid/TP40008267-CH104-SW1)
为了避免每次启动/激活都测试自动续订,您应该存储订阅期的endDate,以便在之后测试续订。
另请参阅:
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/RenewableSubscriptions/RenewableSubscriptions.html#//apple_ref/doc/uid/TP40008267-CH4-SW4
使用restoreTransactions方法,您可以获得登录的Aplle-ID的所有事务。搜索与您的产品关联的事务处理,并验证可能续订的收据。如果找不到任何交易,则用户未在任何设备上购买。
但是,沙箱中似乎有一个bug。订阅有时会续订,有时不会。很难测试...
发布于 2011-08-16 04:40:12
您不必在服务器上存储事务数据。您可以使用-[SKPaymentQueue restoreCompletedTransactions]启动还原以前的采购事务处理。
https://stackoverflow.com/questions/7070412
复制相似问题