iOS沙箱环境自动续订订阅

问题描述 投票:25回答:2

关于iOS自动续订订阅,我有以下问题

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

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

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

iphone in-app-purchase storekit auto-renewing
2个回答
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


10
投票

为了增加这一点,Apple的文档中的这一行似乎被误解了

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

这似乎意味着每天所有订阅只会续订6次。而不是每个订阅将在取消之前续订6次。这让我感动了一阵子。

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

© www.soinside.com 2019 - 2024. All rights reserved.