【问题标题】:Apple: In App Purchase Subscriptions & Server to Server NotificationsApple:应用内购买订阅和服务器到服务器通知
【发布时间】:2020-08-09 19:25:30
【问题描述】:

我在确定 Apple 的应用内购买的服务器到服务器状态更新时遇到了一些麻烦:

例如——他们说他们提供这些通知:

CANCEL

DID_CHANGE_RENEWAL_PREF

DID_CHANGE_RENEWAL_STATUS

DID_FAIL_TO_RENEW

DID_RECOVER

INITIAL_BUY

INTERACTIVE_RENEWAL

RENEWAL

但由于某种原因,他们没有提供适用的交易,而是提供“最近 100 份收据”。这是文档——它们似乎也是deprecating the field,之前提供了单个相关对象。

latest_receipt_info array

包含最新 100 个应用内的数组 latest_receipt 中解码值的购买交易。这 数组不包括您的应用拥有的消耗品交易 标记为已完成。该数组的内容与那些相同 在 verifyReceipt 端点中的 responseBody.Latest_receipt_info 收据验证的响应。

如果我收到带有状态的通知 - 我如何关联通知与最近 100 条收据中的哪一条相关?

【问题讨论】:

标签: ios swift in-app-purchase storekit


【解决方案1】:

正如 Apple 在弃用提示中所述,使用 unified_receipt 对象获取 latest_receiptlatest_receipt_info

更新任何现有代码以改为依赖统一收据中的以下对象。

unified_receipt 包含已弃用的顶级对象。

【讨论】:

  • 是的——但 latest_receipt_info 现在是“最近 100 张收据的数组”而不是最后一张收据...
  • 啊,你是对的。从来没有用过。据我所知,第一个条目总是最新的。可以肯定的是,您可以通过expires_date 订购所有商品
  • @PaulSchröder 我们可以在服务器上添加自定义属性到服务器通知吗?
  • @guru 您无法将属性添加到来自 Apple 服务器的通知。你想添加什么属性?
  • 我想包含用户信息,如用户 ID、用户名
【解决方案2】:

您不应该依赖特定的交易。这些通知不附加到事务,而是附加到订阅。 您应该阅读更多关于验证 App Store 收据和 Apple 通知的文章。

【讨论】:

    【解决方案3】:

    您应该做的是检查数组latest_receipt_info 并获取具有最新expiration_date 的数组

    这里有 2 个资源可以帮助您。

    工程订阅 2018 => https://developer.apple.com/videos/play/wwdc2018/705/

    同一会议的成绩单 => https://www.wwdcnotes.com/notes/wwdc18/705/

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 2018-02-17
      • 2020-07-23
      • 2021-06-03
      • 2020-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      相关资源
      最近更新 更多