iOS沙箱环境自动续订订阅

时间:2011-11-07 07:14:54

标签: iphone in-app-purchase storekit auto-renewing

我对iOS自动续订订阅有以下问题

a)自动续订订阅是否真的在沙箱环境中自动续订?问题似乎是订阅没有自动续订,尽管文档说即使在沙盒环境中它也应该发生6次。

b)我们是否需要调用restoreCompletedTransactions来获取自动扩展订阅的新收据,或者是-paymentQueue:updatedTransactions:iOS自动调用的方法? (我猜它会自动调用'启动'和'旋转出背景'不确定)

c)您如何在多台设备上处理相同的订阅?这可以通过restoreCompletedTransactions来处理,但调用它会提示用户输入密码,因此每次应用程序启动时调用它都不是很方便。

2 个答案:

答案 0 :(得分:28)

a)沙箱环境中的自动续订订阅不一致。有时订阅会在结束前多次续订(约5次)。其他时候根本不会更新。

b)(仅限iOS6交易收据)如果您存储以前的收据(最好是在您的服务器上),则无需致电restoreCompletedTransactions来检查订阅的状态。只需获取您为该用户存储的任何订阅收据,并将其提交到App Store进行验证。他们会回复latest_receipt_info,包括您可以用来确定当前订阅状态的expires_date

c)您应该提示新用户“恢复以前的购买”,此时您调用restoreCompletedTransactions。然后将其中一个收据(最好是从您的服务器)提交到App Store进行验证,以获得有关交易的已解码详细信息。在收据信息中查找密钥original_transaction_id。这将始终包含此用户第一次向您发起订阅时的ID。如果您将此ID与系统中的其他ID进行比较,则应该能够确定哪些设备共享Apple帐户。 (由于Apple不允许您查看用户的Apple ID,因此这是识别跨多个设备的帐户的最佳方式。)

与此问题类似: iOS auto-renew expired at the end of current subscription period

答案 1 :(得分:10)

除此之外,Apple的文档中的行似乎被误解了

  

续订速度加快,自动续订订阅每天最多续订六次。这使您可以测试您的应用如何处理订阅续订,订阅失效以及包含差距的订阅历史记录。

这似乎意味着每天所有订阅只会续订6次。而不是每个订阅将在取消之前续订6次。这让我感到很沮丧。

似乎也是在24小时内。在给定时间不清爽。例如,我在上午11点订阅了没有续订的订阅。我在下午2点又做了一次,续约了6次。