代码之家  ›  专栏  ›  技术社区  ›  Andrei Herford

iOS应用内购买收据验证-如果服务器关闭怎么办?

  •  0
  • Andrei Herford  · 技术社区  · 7 年前

    假设一个简单的待办事项列表应用程序可以连接到web服务帐户。web服务允许用户在线编辑ToDo列表,并在不同的设备上同步数据。

    消耗品 iOS的应用内购买项目,允许用户购买不同的按次付费功能。例如,“100个提醒推送通知”可以是IAP项。。。

    通过苹果文档进行购买将遵循以下步骤:

    • 用户开始在应用程序内购买
    • 用户对应用商店进行身份验证并授权购买
    • App Store完成购买(用户付费) <
    • 应用程序将收到有关购买的通知(StoreKit、PaymentQueue、事务等)
    • 服务器验证收据并将“100个提醒推送通知”添加到用户的web帐户 <--从应用程序的角度完成购买

    即使实际购买结果(向用户帐户添加提醒)不会存储在服务器上,而是本地存储在设备上,如果服务器关闭或没有internet连接,收据验证和购买完成也会失败。

    使用时 用户可以简单地恢复以前的购买,但这是不可能的 消耗品IAP ,是吗?

    如果无法从应用商店恢复购买表单,唯一的解决方案就是将收据存储在本地,并为用户提供稍后验证收据的选项。 这是“正确的”解决方案还是有其他方法来处理这个问题?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Paulw11    7 年前

    你在第三点的顺序不正确。

    如果您的服务器关闭并且无法验证回执,您应该向用户提供某种形式的错误,或者重新尝试验证。

    当您最终能够完成收据验证并持久化购买时,您就完成了支付队列上的事务。