iOS In-App购买订阅与第三方系统集成

时间:2013-08-02 02:30:50

标签: ios in-app-purchase subscription

我需要为系统构建一个应用程序,该应用程序已经在其网站上进行了订阅。看起来Apple不允许使用任何自己的订阅和强制将任何应用程序与iOS应用程序内订阅集成。

是否可以集成两个订阅系统?主要问题是用户可以通过iTunes管理iOS订阅,我无法找到是否可以获取有关此信息的信息,并在现有系统中停止订阅(如果已通过iTunes停止)。

那么是否可以收到有关未订阅iTunes用户的通知?

2 个答案:

答案 0 :(得分:5)

使用第三方订阅

首先, 可以支持您应用中的现有订阅系统,但它必须另外到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中查看完整的时间列表。

答案 1 :(得分:2)

因此,您希望从网站购买该服务的人能够使用该应用程序,就像他们从App Purchases和App Purchases中购买的那样,人们能够像人一样加入服务通过网站加入?据我所知,Apple不允许您通过其他服务付费,但是假设有人从应用程序中购买了该服务。应该会发生什么,这笔钱将转移到公司。然后,在付款之后,您应该包含一些代码,这些代码在新用户支付服务费用后执行网站所做的操作,因此请将其帐户创建为付费帐户。然后,应用程序还应该有一个登录屏幕,注册用户(无论他们在哪里注册)都可以登录到应用程序并使用该服务。现在的问题确实是如果通过iTunes停止订阅你永远不会知道,虽然解决这个问题的方法是检查这家公司的服务器,它应该监控来自一个帐户的收入。然后,如果此用户已停止支付(或停止订阅),您将能够从应用程序停止该服务。并且您应该在订阅期限过后重新检查服务器以进行付款,假设应该每周检查一次每周订阅。 (对不起,我会这样做评论,但我没有足够的声誉)