【问题标题】:iOS Auto Renewable Subscriptions veirfyReceipt returns different receipts base64 than deviceiOS Auto Renewable Subscriptions veirfyReceipt 返回与设备不同的收据 base64
【发布时间】:2020-02-14 13:57:05
【问题描述】:

我正在尝试实施自动续订订阅。我的应用程序可以在不同的设备(Android、Web)上使用,因此我需要实现状态轮询技术,以便在 App Store 设法续订过期订阅时确认我的服务器。 收据正在我的服务器上进行验证,详细说明为here。 在设备上进行的每笔交易中,我都会在收据验证过程中更新用户在数据库中输入的 last_receipt_base64 字段。

在每次状态轮询时,我想更新last_receipt_base64expired_date 字段,所以我将last_receipt_base64 发送到苹果的/verifyReceipt 路由。但每次它都会在“latest_receipt”键下放置不同的收据(base64)。更重要的是,返回的(来自/verifyReceipt)收据基数 64 的长度奇怪地比从设备发送的收据短得多(来自设备的 35,000 个字符的收据,从/verifyReceipt 返回的 6000 个字符的收据)。这是为什么?

如果有变化但数据不断变化,我想在每个状态极上更新我的数据库中的条目!此外,来自设备的收据与/verifyReceipt 之间的极端长度差异让我担心收据有一天可能会被拒绝,如果用户长时间不登录 iOS 应用程序。 无论如何,我有点困惑,文档也不是很好......一些指南会有所帮助。

【问题讨论】:

    标签: ios subscription storekit auto-renewable


    【解决方案1】:

    盖尔沙哈尔! 我们还在订阅管理平台中使用 Apple 服务器通知来更新订阅状态。

    状态调查通知中的收据不是您要查找的收据。您应该存储直接从设备发送的收据。

    您应该只依赖 original_transaction_id 并通过此 ID 找到您的客户。

    顺便说一句,你不需要更新你的 base64 收据,因为它总是会给你最新的交易。

    我可以推荐您阅读我们博客中的这篇文章:https://blog.apphud.com/subscriptions-notifications/

    如果您需要帮助,请告诉我们。谢谢!

    【讨论】:

    • 哇,你无法相信你帮我解决了多少问题......很棒的教程!上面写着“Apple 建议在订阅通知之外使用状态轮询”,这是为什么呢?
    • @GalShahar 我相信这是因为通知不可靠并且它们没有实际的 base64 收据。但是,我们还没有遇到通知到达的问题,Apple 在 WWDC 中表示他们将很快添加统一的 base64 收据
    猜你喜欢
    • 2018-10-08
    • 1970-01-01
    • 2018-10-09
    • 2018-10-08
    • 2018-12-24
    • 2016-03-15
    • 1970-01-01
    • 2012-03-19
    • 2020-09-16
    相关资源
    最近更新 更多