【发布时间】:2011-06-10 05:55:26
【问题描述】:
我正在开发一款 iPhone 应用,我想为应用内购买实施新的自动续订模式。我能够成功实现交易,甚至可以订阅应用程序,但如果用户取消自动续订订阅怎么办?
我如何知道它已被取消,因此不能继续允许访问(一旦过期)?
【问题讨论】:
标签: objective-c ios cocoa-touch in-app-purchase
我正在开发一款 iPhone 应用,我想为应用内购买实施新的自动续订模式。我能够成功实现交易,甚至可以订阅应用程序,但如果用户取消自动续订订阅怎么办?
我如何知道它已被取消,因此不能继续允许访问(一旦过期)?
【问题讨论】:
标签: objective-c ios cocoa-touch in-app-purchase
您可以通过向 Apple 的服务器发送收据验证来查找用户订阅的到期日期。查看In-App Purchase Programming Guide上的图1-3。
基本上步骤是:
[SKPaymentQueue restoreCompletedTransactions] 保存的一个。expires_date 的密钥(自格林威治标准时间 1970 年 1 月 1 日起以 毫秒 秒表示)。我使用本指南在服务器端帮助我:Verifying Apple App Store Receipts For In App Purchases With PHP and cURL。
无法确定用户是否打开或关闭了自动续订。 Apple 不会让您访问这些信息。唯一的方法是等到到期日期过去而不续订。
【讨论】:
如果收据状态为21006 并且有一个名为cancellation_date 的键,那么它是取消,您可以在该键中找到新的到期日期,但它是一个格式化的日期,如果您需要更好的值来解析检查receipt['latest_expired_receipt_info']['cancellation_date_ms'] 是否与expires_date 相同
【讨论】: