gpt4 book ai didi

iphone - 应用内自动续订订阅

转载 作者:行者123 更新时间:2023-12-03 18:17:17 25 4
gpt4 key购买 nike

很抱歉问了有关 iTunes 订阅的第一百万个问题,但我仍然有一些疑问。

基本上,我正在我的应用程序中实现自动续订订阅,我想确保我做对了。以下是我想出的要采取的步骤列表:

  • 每当用户购买订阅时,都会将收据发送到服务器以进行验证
    • 如果收据有效,请将其保存到数据库
  • 在应用程序加载时,询问服务器是否存在此 UDID 的收据(这是为了确定用户是否有有效的订阅)
    • 如果是,请检查从订阅开始日期到到期日期的日期范围内商店中是否添加了新商品
      • 如果有的话,以某种方式通知用户这些项目并将其标记为可免费下载

这些步骤正确吗?如果是这样,为什么苹果文档说:

In most cases, your iOS client application should not need to change. In fact, your client application is now made simpler, as you can use the same code to recover auto-renewable subscriptions as you do to recover nonconsumable products. This is described in “Restoring Transactions.”Your application receives a separate transaction for each period of time where the subscription was renewed; your application should verify each receipt separately.

对我来说,这似乎需要一些代码来处理我提到的所有各种情况。或者说我完全错了。我是吗?

另外,我如何知道订阅到期日期?我无法找到在任何地方获取此信息的方法。我应该将其保存在我自己的数据库中吗?

更新:

自从我发布这个问题以来,我已经弄清楚了一些事情。如果我错了,请随时纠正我。

首先,我想我应该将订阅的长度存储在我自己的数据库中的某个位置,因为正如苹果文档中所述,您无法通过苹果的网络服务以任何方式检索它。事实上,每个订阅长度都有不同的产品标识符,因此您应该有一种方法将产品标识符转换为订阅长度。

还有,西尔维安 has posted有关他实现自动更新订阅的详细信息,所以至少我知道我的想法没有太大缺陷。

现在唯一的问题是:我如何知道用户有有效的订阅?我可以将此信息存储在我的服务器上,是的,但是如何将用户与已完成的订阅关联起来?交易?我应该保存设备的 UDID 吗?

最佳答案

以下是我们如何实现应用内购买,特别是我公司的新自动续订产品。

应用程序将交易收据传输到我们的网络服务,如果处理正确,我们会向应用程序返回 OK,并且 Apple 可以验证它。在这种情况下,我们更新了用户帐户(即数据库)以表示“是的,他已付款,并且他的订阅在收据到期日期之前有效”。

此 Web 服务确定后,应用程序通过另一个 Web 服务重新加载帐户信息,并查看是否有有效的订阅。就是这样......直到自动更新产品出现。

我们现在必须实现一些每天运行的 CRON 作业:每天我们都会列出应该过期的通行证列表,然后我们询问 Apple 原始收据是否仍然有效:神奇的是他们的答案,有一个字段 latest-receipt 嵌入 latest 收据。如果它与我们拥有的不同,我们就知道订阅已自动续订,我们会存储最新的收据以供下一次 cron 检查,并更新用户帐户以延长到期日期。

希望有帮助。

关于iphone - 应用内自动续订订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5329336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com