我对iOS自动续订订阅有以下问题
a)自动续订订阅是否真的在沙箱环境中自动续订?问题似乎是订阅没有自动续订,尽管文档说即使在沙盒环境中它也应该发生6次。
b)我们是否需要调用restoreCompletedTransactions来获取自动扩展订阅的新收据,或者是-paymentQueue:updatedTransactions:iOS自动调用的方法? (我猜它会自动调用'启动'和'旋转出背景'不确定)
c)您如何在多台设备上处理相同的订阅?这可以通过restoreCompletedTransactions来处理,但调用它会提示用户输入密码,因此每次应用程序启动时调用它都不是很方便。
答案 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次。