【问题标题】:Testing IAP subscription when renewed from iTunes or App Store app从 iTunes 或 App Store 应用续订时测试 IAP 订阅
【发布时间】:2025-12-13 07:40:02
【问题描述】:

我一直在应用内购买实现自动续订,并且使用找到的信息 here,在购买、续订和恢复交易流程方面几乎没有遇到任何问题。

我遇到的问题是找到一种方法来测试用户何时从 iTunes 或 App Store 应用程序 (Detailed here) 的帐户页面更新(可能是在过去的某个时间取消之后)。我假设,因为这些存在于沙箱之外,并且当您使用沙箱帐户登录其中一个时,该帐户作为测试帐户无效,因此无法实际测试此用例,所以我只是在寻找更多关于预期行为的信息,以尝试解释它。

我知道保留收据的副本以进行验证会将最新的收据作为 JSON 有效负载的一部分,我更想知道 StoreKit 将如何处理此更新的信息。 paymentQueue: updatedTransaction: 会在我添加TransactionObserver 后立即触发新的SKPaymentTransaction,还是会保持沉默直到调用restoreCompletedTransactions,然后新的SKPaymentTransaction 将成为其中的一部分?

【问题讨论】:

    标签: ios app-store in-app-purchase storekit


    【解决方案1】:

    是的,你是对的; paymentQueue:updatedTransactions: 将触发,就像您进行初始订阅购买一样。

    正如here 所述(向下滚动到“测试环境”下方的底部),您可以实际测试这一点,因为沙盒内的续订速度要快得多(每天最多六次)。

    此外,当您在进行测试订阅购买后立即通过 Apple 的验证服务验证交易时,请在响应中查找 expires_date 字段,它会告诉您何时触发下一次续订。

    【讨论】: