自动续订订阅错误

时间:2013-02-12 12:44:12

标签: iphone in-app-purchase subscription newsstand-kit auto-renewing

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

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

步骤:

  1. 购买自动续订订阅
  2. 成功购买后,请再次删除并重新安装该应用程序。
  3. 再次购买具有相同Apple ID和密码的自动续订订阅,或尝试使用相同的Apple Id在其他设备上购买相同的订阅。
  4. 我怀疑这不是恢复之前的购买,而是提出新的购买请求并相应地更新订购周期。

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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