1

我阅读了许多有关 ios 可更新订阅的材料并拥有以下工作流程:

  1. 应用程序从苹果获取收据并将其发送到后端
  2. 通过 apple verify-url 后端验证收据
  3. 后端仅从 latest_receipt_info 获取真实的 transaction_id 和 expires_date
  4. 如果后端在数据库中没有此事务,它将增加用户订阅

该工作流程是因为:

  1. Apple 可以发送收据检查通知 - 为什么我从 latest_receipt_info 获得信息
  2. Apple 建议使用此流程进行续订

但我有一些问题/疑问:

  1. 我想从这个流程中排除应用程序。我想像 android-flow 一样创建 - 从后端同步所有续订。我怎样才能创建它?
  2. 如果用户 1 年没有开始申请会发生什么?苹果会从用户那里得到钱吗?如果申请未开始,我将如何收到通知?

请给我链接或我的问题的答案。

升级版:

我现在有一个问题。如何与苹果服务器连接以进行同步续订,例如 android flow。

当前方案:

+--------------+           +--------------+          +---------------+
|              |           |              |          |               |
|   Mobile     |           |    Backend   |          |      Apple    r
|              |           |              |          |               |
+------+-------+           +-------+------+          +--------+------+
       |          Sync             |                          |       
       +------------------------------------------------------>       
       <------------------------------------------------------+       
       |          Renew            |                          |       
       +--------------------------->        Verify            |       
       |                           +-------------------------->       
       |           Renewed         <--------------------------+       
       <---------------------------+                          |       
       +                           +                          + 

但我想要没有移动应用程序的流程:

+--------------+           +--------------+          +---------------+
|              |           |              |          |               |
|   Mobile     |           |    Backend   |          |      Apple    r
|              |           |              |          |               |
+------+-------+           +-------+------+          +--------+------+
       |         Data for sync     |                          |       
       +--------------------------->        Check renewals    |       
       |                           +-------------------------->       
       |                           <--------------------------+       
       |                           +--+                       |       
       |                           |  |  Renew                |       
       |                           <--+                       |       
       |                           |         Check renewals   |       
       |                           +-------------------------->       
       |                           <--------------------------+       
       |                           |                          |       
      ++                           +                          +  
4

1 回答 1

1

欢迎来到 Apple Sir,在尝试创建“Android 流程”之前,您应该注意一些事项。

  1. 应用内购买由 Apple 管理。没有办法绕过这一点并获得批准。您将收据发送到后端的唯一原因是验证购买。这是为了防止 Malice 越狱他们的设备并以某种方式进行虚假购买。然后,您的服务器应该能够检测此收据是来自 Apple 还是来自其他来源,并相应地解锁内容。自然,您在收据验证中提供的安全级别与您的应用内购买的价值成正比
  2. 自动更新订阅将无限期地继续,直到用户选择取消。您完全无法控制管理用户订阅。您唯一能做的就是向用户提供打开 iTunes 的链接,以便他们可以管理自己的订阅。

因此,Apple 始终控制着这个过程。您将无法使用收据识别用户,甚至无法从他们那里获取任何信用卡信息。您只需依赖这样一个事实,即当 Apple 向您提供收据时,该收据是有效收据,您将获得报酬

关于续订,以下是有关如何处理的文档摘录:

订阅成功续订后,Store Kit 将续订事务添加到事务队列中。您的应用程序在启动时检查事务队列并以与任何其他事务相同的方式处理更新。请注意,如果您的应用在订阅更新时已经在运行,则不会调用事务观察器;您的应用会在下次启动时发现续订。

因此,每次您的应用程序启动时,您都有机会将任何现有交易添加到您的队列中。这是您可以通知服务器收据已更新的时间。

于 2014-11-12T14:51:07.267 回答