我们可以将 iOS 中的应用程序购买收据存储到我们的服务器吗

Can we store iOS in app purchase receipt to our server

我正在开发应用内购买应用(自动续订),purchase/cancellation 应该会在所有平台(Android、iOS、Web)上生效。

我的问题是跟踪最新购买状态的最佳方式是什么。我知道有一种使用 web hook 称为服务器到服务器通知的方法,但我在想我们可以将收据数据存储到服务器并使用 iTunes api 不时验证此收据吗?

收据数据是随着订阅的更新而改变还是换了设备还是一样?

我只想在服务器端验证它,因为用户可能会卸载该应用程序或不使用它。

是的,你可以,而且服务器到服务器的验证和观察是 Apple 推荐的最可取的方式。他们提供 JSON API 并接受您的服务器端点 post 直接对服务器的任何更改。

有关详细信息,请阅读 Choosing a Receipt Validation Technique 和主题中的相关内容。

共同的起点是In-App Purchase

您可以在服务器端验证收据。有两种选择。

  1. 启用服务器到服务器通知。

  2. 将所有收据存储在您的数据库中,并与服务器进行验证以获得最新更新。

您需要使用密钥 "latest_receipt" 下收据中的元数据来获取订阅中的最新更新。

下面是link供参考。

https://developer.apple.com/documentation/storekit/in-app_purchase/validating_receipts_with_the_app_store#//apple_ref/doc/uid/TP40010573-CH104-SW1

初始收据元数据不会随时间变化。您可以将初始收据元数据保存在您的数据库中,并将其用于进一步的更新,例如续订、取消、升级或降级、退款等。