Apple App Store 服务器通知 v2 - verifyReceipt 新流程

Apple App Store Server Notification v2 - verifyReceipt new flow

提问人:mike927 提问时间:7/4/2023 更新时间:8/2/2023 访问量:559

问:

我正在尝试了解移动应用程序/服务器应用程序的正确流程 - 自动续订订阅。

由于已被标记为已弃用,我正在努力解决如何将 App Store Server Notification v2 消息与数据库中的用户链接的问题。verifyReceipt

目前,流程如下:

首先,移动应用程序使用 .其次,服务器调用以验证收据。然后,我能够将用户的订阅/事务与他们的数据进行匹配(使用内部 JWT 与第一步中的用户数据和解码响应中的 originalTransactionId)。现在,如果我们省略第一步,我将如何确定谁应该成为 App Store 服务器通知 v2 消息的收件人?receipt-dataverifyReceiptverifyReceipt

应用商店 服务器端 订阅

评论


答:

0赞 chaiyut 7/17/2023 #1

我也开始工作了(还没有完成,但我想我可以分享我的想法)。

我的流程更像是你的流程。这是你今天的流程:

  1. 移动应用程序使用收据数据调用我们的服务器。
  2. 服务器调用 verifyReceipt 来验证收据。然后,我能够将用户的订阅/交易与他们的数据进行匹配
  3. 您的服务器对移动设备的响应,即订阅已完成或失败。

我认为新流程会像这样:

  1. 移动应用程序使用收据数据调用我们的服务器。
  2. 服务器调用 App Store Server API 来验证付款,可能来自交易信息 api(仍然不确定)然后您可以按照今天的流程进行订阅
  3. 您的服务器对移动设备的响应,即订阅已完成或失败。

正如我所描述的,我认为对于这部分(新订阅),您需要实现 App Store Server API(需要有 JWS 才能使用 App Store Server API 进行身份验证)

下一部分是针对(服务器通知)您可以将服务器通知更改为版本2启用App Store服务器通知,对于这部分,我仍在检查,如果我有更清楚的,我会分享给您。


在完成迁移后更新。 我开始首先处理新的付款,以在我的服务器和我的应用程序之间处理,然后对应用程序通知应用相同的方法。

  1. 应用和我的服务器之间的句柄
  1. 应用通知版本 2

我不放代码,因为所有这些都在服务器端,如果你需要,我可以提供更多。

评论

0赞 a programer 9/26/2023
您好@chaiyut,感谢您的解决方案。但是我有一个问题:如何在本地主机环境中进行测试?我可以部署沙盒环境,但无法调试
0赞 chaiyut 9/29/2023
你好@a程序员 您只能在 localhost 中测试第一次付款(更改应用程序中的 url 以在 localhost 中验证),但对于测试来自 Apple 的 IPN,您不能在 localhost 中进行测试。对我来说,我通过模拟 Apple IPN 数据并在 localhost 中进行测试并使用 Postman 发送数据。
0赞 a programer 9/29/2023
嗨,@chaiyut,非常感谢<3