是否有任何方法来集成两个订阅系统?主要问题是用户可以通过iTunes管理iOS订阅,我无法找到是否可能获取关于此的信息并在现有系统中停止订阅,如果通过iTunes停止订阅。
因此,是否有可能获得有关取消iTunes用户的通知?
使用第三方订阅
首先,你可以在你的应用中支持现有的订阅系统,但这必须是在 App Store 订阅之外。同时,你需要非常小心地选择 UI 界面。你不能提示用户绕过 App Store 并通过你的服务器购买,但你可以为现有的订阅用户提供使用他们之前在你的网站上获得的凭据登录的能力。
话虽如此,苹果对于 App Store 中允许什么和不允许什么的裁定可能会相当反复无常。我曾经参与开发过这种类型的应用,但它们都是为相当知名的杂志出版物开发的。并不保证他们会允许每个人都这样做。
检测未订阅的 App Store 订阅
关于使用 App Store 订阅,当用户在你的应用中购买订阅时,他们将在 SKPaymentTransaction 对象中收到一个收据。在你给用户访问任何内容之前,这个收据应该被发布到你的后端服务器以确保它是有效的。有关更多详细信息,请参见 In-App Purchase Programming Guide。
当你设置订阅类型时,你需要指定这个订阅的持续时间。所以如果在收到收据时记录 SKPaymentTransaction 中的交易日期,你可以通过将订阅的持续时间加上交易日期来确定该订阅应该何时到期。
如果这是一个自动续订的订阅,当订阅续订时,你将收到一个新的收据。因此,一旦你已经验证了它与你的后端服务器,你可以基于新的交易日期更新你的到期日期。如果在第一个收据到期之前没有收到新的收据,那么用户很可能已经取消了他们的订阅。
在后端,你的服务器还可以根据验证服务器的响应来告诉一个特定的订阅将在何时到期。首先有状态码,它将告诉你是否订阅已经过期,但也有一个在解码的收据中返回的到期日期,如果它还没有到期,那么它将告诉你什么时候到期。
有关更多详细信息,请参见 可自动续订的订阅 文档。
测试自动续订订阅
值得注意的是,在App Store沙箱环境中测试自动续订订阅时,各种订阅类型的时长都被大幅缩短,以便于测试。例如,一个1周的订阅在沙盒环境中只能持续3分钟。您可以在iTunes Connect开发人员指南中查看完整的时间列表。