ruby-on-rails - IAP 后端最佳实践

标签 ruby-on-rails api message-queue in-app-purchase

我刚刚用 IAP 制作了 iOS 应用程序来购买虚拟硬币(消耗品)。后端是 Ruby on Rails。我现在对整个解决方案有些担忧。

我目前的 IAP 流程描述如下:

  • 第 1 步 - iOS 客户端向我们的后端发送请求并获取产品 ID。
  • 第 2 步 - 客户通过 Store Kit 检索产品列表,ID 来自第 1 步
  • 第 3 步 - 用户点击购买,客户向 Store Kit 发送付款请求
  • 第 4 步 - 完成交易后,客户端将接收 token 发送到我们的后端
  • 第 5 步 - 服务器首先验证收据以确保它是有效的验证
  • STEP 6 - 服务器调用App Store验证收款并处理交易所(充值在DB中)
  • 第 7 步 - 客户端收到回复并显示帐户余额

  • 我之前研究过电子商务/支付解决方案,而 IAP 采取另一种方式,尽管通常支付网关会发送收据服务器到服务器进行验证。而且我们总是有消息队列解决方案,以确保所有事务都是稳定和可维护的。

    我的问题是:
  • 验证 IAP 收据的最佳做法是什么?如何避免我们服务器的验证中断? (例如,用户在客户端花钱并完成交易,但在服务器上验证收据时失败。不支持IAP恢复交易。)
  • Apple IAP 更可能是完美的客户端解决方案。特别是在我的情况下,用户付款后,他想立即收到硬币,而不是我们告诉他交易正在处理并且他的帐户很快就会完成的情况。优先考虑移动设备上的响应式用户体验。你还在服务器上使用消息队列的东西吗?

  • 谢谢你的时间。

    最佳答案

    您可能会发现 http://helios.io/有用。它结合了四个有用的 iOS 相关 gem,其中之一是 https://github.com/mattt/rack-in-app-purchase

    关于ruby-on-rails - IAP 后端最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595740/

    相关文章:

    api - 警告客户端有关已弃用的 REST API

    python - 使用 Telegram.org API 进行客户端/服务器交互

    scala - 使用 Finagle 重试失败

    c# - 以编程方式安装 Windows 消息队列

    c - 为什么会有错误号 S_objLib_OBJ_UNAVAILABLE?

    ruby-on-rails - 具有模型关联的 Rails json 对象

    ruby-on-rails - 如何使用 Rails 应用程序在 Nginx 上配置 SSL 终止

    architecture - 代理与非代理消息系统的优缺点

    ruby-on-rails - RVM gemset 创建不工作

    ruby-on-rails - 如果条件与 &&,是否有任何性能提升