【问题标题】:How to handle a auto-renewing subscriptions as a developer作为开发人员如何处理自动续订订阅
【发布时间】:2011-02-25 16:02:17
【问题描述】:

this Article Apple 中写了如何从用户的角度启用自动续订订阅。但我的问题是,作为应用程序的开发人员,如何处理这种自动续订订阅?

在我的应用(目前正在开发中)中,用户可以通过应用内购买购买一些订阅(30 天、3 个月和 1 年)。成功付款后,我将购买的商品标识符发送到我的服务器以节省新的订阅时间(也用于其他平台)。这在沙盒环境中完美运行。

但如果我正确理解了这篇文章,自动续订订阅是在 AppStore 和我的应用程序内部执行的。我现在如何跟踪订阅?

【问题讨论】:

标签: iphone app-store in-app-purchase


【解决方案1】:

如果订阅是自动续订的,则事务将不会通过 paymentQueue:updateTransactions 方法。更新只发生在商店中。

如果你想测试它,你必须:

  • 如果您将收据存储在应用服务器上,请重新验证收据。
  • 在您的 iOS 客户端上重新验证收据

见:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html#//apple_ref/doc/uid/TP40008267-CH104-SW1

为了避免在每次启动/激活时测试自动续订,您应该存储订阅期的endDate 以便之后测试续订。

另见:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/RenewableSubscriptions/RenewableSubscriptions.html#//apple_ref/doc/uid/TP40008267-CH4-SW4

但是,沙盒中似乎存在错误。订阅有时会更新,有时不会。很难测试....

【讨论】:

  • 也可以在stackoverflow.com/questions/6526544/…上查看我的回答
  • +1 Rene 说得对。您无需restoreCompletedTransactions 即可查明是否发生了自动续订。从您的服务器,只需将您为该用户存储的任何收据发送到 App Store 进行验证。如果相关,他们将回复latest_receiptlatest_expired_receipt
【解决方案2】:

根据在苹果的in-app-purchase documentation 中找到的(相当少的)信息,我的印象是,每当您需要确定用户的自动续订订阅状态时,您都会恢复他们的交易。

这会导致应用商店将所有自动续订交易发送到您的应用,此时您将处理收据并提供适当的内容。

大概,您只需要在用户的当前订阅(您可以在本地跟踪)设置为过期时,或者当他们第一次安装应用程序时才需要这样做。

【讨论】:

  • 我应该把代码放在哪里来处理这个?你有这方面的代码示例吗?
猜你喜欢
  • 2018-05-19
  • 2021-06-21
  • 2018-08-28
  • 2017-06-16
  • 2015-06-26
  • 2020-03-27
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
相关资源
最近更新 更多