是否可以集成两个订阅系统?主要问题是用户可以通过iTunes管理iOS订阅,我无法找到是否可以获取有关此信息的信息,并且如果通过iTunes停止,则停止在现有系统中订阅.
那么是否可以获得有关未订阅的iTunes用户的通知?
使用第三方订阅首先,可以在您的应用中支持现有的订阅系统,但它必须是App Store订阅的补充.您还必须非常小心使用的UI.您无法提示用户绕过App Store并通过您的服务器购买,但您可以为现有订阅者提供使用以前通过您的网站获得的凭据登录的功能.
也就是说,苹果在他们对App Store中允许和不允许的内容的裁决中可能相当反复无常.我曾经做过那些已经做过这类事情的应用程序,但它们一直用于相当知名的杂志出版物.不能保证他们会允许每个人.
检测未订阅的App Store订阅
至于使用App Store订阅,当用户在您的应用中购买订阅时,他们将在SKPaymentTransaction对象中收到收据.此收据应发布到您的后端服务器,以确保它在您授予用户访问权限之前有效.有关详细信息,请参阅In-App Purchase Programming Guide.
设置订阅类型时,您可以指定订阅的持续时间.因此,如果您在收到收据时在SKPaymentTransaction中记录交易日期,则可以通过将订阅的持续时间添加到交易日期来确定该订阅何时到期.
如果是自动续订订阅,续订订阅时您将收到新收据.因此,一旦您使用后端服务器验证了这一点,就可以根据新的交易日期更新到期日期.如果您在第一个收据到期之前没有收到新收据,则可能是用户已取消订阅.
在后端,您的服务器还可以根据验证服务器的响应判断特定订阅何时到期.首先是状态代码,它将告诉您订阅是否已经过期,但在解码的收据中还有一个到期日期,它将告诉您预计何时到期(如果尚未到期).
有关更多详细信息,请参阅Auto-Renewable Subscriptions文档.
测试自动续订订阅
值得注意的是,当您在App Store沙箱环境中测试自动续订订阅时,各种订阅类型的长度会大大缩短,以便更容易测试.例如,1周的订阅在沙箱环境中仅持续3分钟.您可以在iTunes Connect Developer Guide中查看完整的时间列表.