2011-06-10 84 views
5

我正在开发iPhone应用程序,并且希望实施应用程序内购买的新自动续订模式。我能够成功实现交易,甚至可以订阅应用程序,但如果用户取消自动续订订阅,该怎么办?取消应用程序内购买的自动续订通知

我如何能够知道它已被取消,因此不能继续访问(一旦过期)?

回答

4

通过向Apple服务器发送收据验证,您可以找到用户订阅的到期日期。请查看In-App Purchase Programming Guide上的图1-3。

基本步骤是:

  1. 在设备上,获得了交易收据应用程序内购买。您在交易期间或通过致电[SKPaymentQueue restoreCompletedTransactions]保存的任一人。
  2. 将收据发送到您的服务器。 (这比尝试直接从应用程序对Apple服务器进行收据验证更有优势,因为这需要您将共享密钥存储在设备上。)
  3. 将收据从服务器发送到Apple服务器,并在响应查找名为expires_date的密钥(表示自1970年1月1日以来的毫秒秒)。

我使用本指南来帮助我在服务器端:Verifying Apple App Store Receipts For In App Purchases With PHP and cURL

无法确定用户是否已启用或禁用自动续订功能。 Apple不会让您访问这些信息。唯一的方法就是等到失效日期过去而没有更新。

+0

嘿安德鲁,可以订阅iTunes帐户1,然后更改iTunes帐户到帐户2,应用程序应该继续与新的iTunes帐户即帐户2。该应用程序不应该要求从iTunes帐户购买2.我应该如何管理。?我正在使用自动续订订阅。 – Charmi 2017-03-23 04:47:20

2

如果接收状态是21006,有一个名为cancellation_date键,那么它的取消,你可以找到在该密钥的新的到期日期,但它是一个格式化的日期,如果你需要一个更好的价值来分析检查receipt['latest_expired_receipt_info']['cancellation_date_ms']expires_date

+0

我没有收到['latest_expired_receipt_info']。它是否变得了? – Jasmit 2016-05-13 09:19:25

+0

我没有得到任何提及的关键。 – 2017-04-21 10:53:33

相关问题