自动续订订阅错误

Posted

技术标签:

【中文标题】自动续订订阅错误【英文标题】:Auto-renewable subscription error 【发布时间】:2013-01-27 18:41:31 【问题描述】:

我正在开发一个报亭应用,该应用具有自动续订订阅,每 12 个月续订一次。问题是当已经订阅的用户尝试再次购买订阅时。根据文档,如果用户已经订阅,StoreKit 框架应该返回SKPaymentTransactionStateRestored,但在 StoreKit 委托方法中返回SKPaymentTransactionStateFailed

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

步骤:

    购买自动续订订阅 购买成功后,再次删除App重新安装。 再次使用相同的 Apple ID 和密码购买自动续订订阅,或尝试使用相同的 Apple ID 在其他设备上购买相同的订阅。

我怀疑它不是恢复以前的购买,而是提出新的购买请求并相应地更新订阅期。

这不是基于帐户的应用程序,因此我无法在服务器上存储和检查订阅期。

【问题讨论】:

【参考方案1】:

你应该在你的应用中添加两个按钮:

购买 - 只购买自动续订订阅 Restore - 将尝试使用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions] 恢复现有订阅

您可以在用户界面中为用户写一些解释,例如“如果您已经购买了此订阅,请点击恢复”

这项技术是在三四次被 Apple 拒绝时发明的,因为“用户应该有能力恢复他们的订阅”,“如果用户不期望密码提示,则用户不应该得到密码提示”(它要求用户通过时恢复已完成的交易)等等。

【讨论】:

以上是关于自动续订订阅错误的主要内容,如果未能解决你的问题,请参考以下文章

恢复已删除的自动续订订阅

自动续订订阅在自动续订时是不是会发送 SKPaymentTransactionStatePurchased 交易?

从自动续订切换到可续订订阅

自动续订订阅是不是仅限于报亭?

如何获得自动续订订阅的取消日期?

在应用内购买中取消自动续订订阅