【问题标题】:Renewable subscription and backed可更新订阅和支持
【发布时间】:2014-11-12 14:44:30
【问题描述】:

我阅读了很多关于 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   |       
       |                           +-------------------------->       
       |                           <--------------------------+       
       |                           |                          |       
      ++                           +                          +  

【问题讨论】:

  • 我正在考虑这个解决方案。你知道答案正确吗?请帮帮我。

标签: ios auto-renewing


【解决方案1】:

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

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

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

关于续订,这是documentation 中关于如何处理它们的摘录:

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

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

【讨论】:

  • 我需要同等报告:我的续订报告和苹果报告。而且我没有来自应用程序的足够通知。我和苹果报告之间的差异是 15% - 太大了。可能会自动续订,但用户没有启动应用程序,我也没有收到通知。
  • 我不完全确定你在问什么。什么通知?
  • 移动应用程序通知后端续订。而且我认为并非所有通知都已送达。
  • @YegorLukash 我更新了我的答案,包括您应该如何处理续订
  • 好吧,我读了这个文档。但有趣的是“不调用事务观察者”。但主要问题是:如果用户在 1 年内没有启动应用程序,我们将不会收到有关续订的通知。苹果是否会从用户那里取款?如果是 - 报告不会永远相等。
猜你喜欢
  • 2023-04-03
  • 2017-07-04
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
相关资源
最近更新 更多