31

我有以下关于 iOS 自动更新订阅的问题

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

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

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

4

2 回答 2

32

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

b) (仅限 iOS6 交易收据)如果您存储以前的收据(最好在您的服务器上),则无需调用restoreCompletedTransactions来检查订阅状态。只需获取您为该用户存储的任何订阅收据,然后将其提交到 App Store 进行验证。他们将回复您可以用来确定当前订阅状态的内容。latest_receipt_infoexpires_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

于 2011-12-06T21:28:43.097 回答
13

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

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

这似乎意味着每天所有订阅只会续订 6 次。而不是每次订阅都会在取消之前续订 6 次。这让我呆了一会儿。

它似乎也处于 24 小时周期内。在特定时间不刷新。例如,我在上午 11 点进行了订阅,但没有续订。我在下午 2 点又做了一个,更新了 6 次。

于 2016-02-18T15:48:13.993 回答