【问题标题】:Notify server with IOS in-app purchase events (renewed,cancelled..etc)使用 IOS 应用内购买事件通知服务器(续订、取消……等)
【发布时间】:2018-02-19 08:32:07
【问题描述】:

我在我的应用程序中使用自动定期订阅,如果从 iOS 重复订阅失败,我需要更改订阅状态。

我正在关注这个documentation,但有几件事我还不清楚:

  • 如果我的服务器错过了来自 iOS 的发布数据怎么办
  • 我如何知道订阅是否已续订
  • 如何将我的应用用户 memberId(唯一 ID)链接到交易
  • latest_receipt 形式的 iOS 发布数据(服务器到服务器通知)和购买后的捆绑收据 url 有什么区别。

【问题讨论】:

    标签: ios iphone in-app-purchase app-store-connect receipt-validation


    【解决方案1】:

    以下是我引导用户订阅的步骤:

    1. 要求用户登录。如果他们不登录,则无法订阅。
    2. 将应用收据发送到我的服务器并将其存储在那里。如果失败,他们将无法订阅。这需要这个来验证是否可以随时从服务器获取 latest_receipt 信息。
    3. 用户通过 iTunes 订阅。
    4. 在应用商店验证他们的收据并检查 latest_receipt 以确保他们已订阅。 (这是在服务器端完成的)
    5. 定期重复第 4 步以确保它们仍然被订阅

    所以回答你的问题:

    如果我的服务器错过了来自 iOS 的发布数据怎么办?

    由于我在用户订阅之前收到了用户的应用收据,因此我可以随时直接从我的服务器上使用 iTunes 检查并了解他们的订阅状态。

    我如何知道订阅是否已续订?

    由于您的服务器上有用户收据,您可以使用它从苹果获取最新的收据并检查订阅的当前状态。这是你的做法Validating Receipts With the App Store

    如何将我的应用用户 memberId(唯一 ID)链接到交易?

    您可以使用收据中的“原始交易标识符”作为唯一 ID。对于为特定订阅生成的所有收据,此值相同

    latest_receipt form iOS post有什么区别 数据(服务器到服务器通知)和捆绑收据网址之后 购买?

    当您将收据发送到应用商店进行验证时,它将返回已发送收据的 JSON 表示形式,可在“收据”字段中找到。如果您的收据包含订阅,您将获得“latest_receipt”和“latest_receipt_info”字段。在检查自动续订订阅当前是否处于活动状态时,这些字段很有用。如果捆绑收据是最新的,则“receipt”和“latest_receipt”将相同。

    【讨论】:

    • 如果我的服务器更新因原始事务而失败而初始事务由于电源故障或网络故障等设备中的设备如何管理重复更新。以及我如何识别实际完成交易的成员
    • 当用户安装应用程序时,他们会有一个应用程序收据,在您将此收据发送到您的服务器之前,不要让用户从应用程序购买。您可以使用此收据从您的服务器直接检查到应用商店以检查订阅的当前状态
    • 太棒了!但是,如果用户更改了苹果 ID 怎么办。收据是否仍然有帮助,如果用户正在使用苹果 ID,是否有办法处理订阅...?
    猜你喜欢
    • 1970-01-01
    • 2019-10-14
    • 2018-02-17
    • 2020-08-09
    • 2017-01-10
    • 2018-06-01
    • 2016-01-25
    • 2013-05-29
    • 2015-10-07
    相关资源
    最近更新 更多