iOS - 自动续订订阅到期

时间:2015-12-18 11:24:30

标签: ios json date subscriptions

问题1:

我已阅读有关订阅的Apple文档但我仍不确定是否可以从收据中获取自动续订订阅的到期日期而不联系iOS 9中的Apple服务器?这有道理吗?

问题2

目前,我为实现自动续订订阅到期而采取的措施是:

  • 使用[[NSBundle mainBundle] appStoreReceiptURL]并继续将收据转换为基本64字符串

  • 创建一个字典,其中包含此收据数据和共享密钥

  • 将此词典转换为JSON字符串

  • 将此JSON字符串发送到https://sandbox.itunes.apple.com/verifyReceipt

  • 返回从应用商店收到的JSONized收据字典

  • 从latest_receipt_info词典中的expires_date_ms获取到期日期

我不完全确定这是否正确,因为根据文档,它无法实现App Store和设备之间的安全链接(我目前正在这样做)。事实上,文档说明我需要自己的服务器,它将为我与App Store通信(https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1)。

这是可接受的方法还是我需要自己的服务器?如果我需要自己的服务器,有人可以指导我如何设置它吗?

N.B:每当使用OpenSSL进行本地验证购买时,我都会对非消费品和消费品应用内购买进行收据验证。所以这应该是好的。

提前致谢。

1 个答案:

答案 0 :(得分:3)

以下是在您的应用程序中实现Auto-Renewable服务的步骤。

1)每当您的应用在应用购买时完成。您应该将收据数据(在Base 64编码中)发送到您将使用特定用户配置文件存储的服务器(仅作为示例)

2)您需要在服务器上创建克隆作业。此克隆作业将在一天内运行一次,用于验证每个收据。

3)在此验证过程中,您只需要调用您在问题中提到的苹果服务。

4)在每次通话中,您都会收到来自苹果的回复,其中苹果将提供自动续订的所有细节。如果任何用户更新了他的服务,那么您将在响应中找到另一个对象。有效期限延长。

希望这会对你有所帮助。