IAP后端最佳实践

cha*_*gel 8 api ruby-on-rails message-queue in-app-purchase

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

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

  • 第1步 - iOS客户端向我们的后端发送请求并获取产品ID.
  • 第2步 - 客户端通过Store Kit检索产品列表,其中包含步骤1中的ID
  • 第3步 - 用户点击购买,客户端向Store Kit发送付款请求
  • 第4步 - 完成交易后,客户将收据令牌发送到我们的后端
  • 步骤5 - 服务器首先验证收据,以确保它是有效的验证
  • 第6步 - 服务器调用App Store验证收据并处理交换(DB中的Recharge帐户)
  • 第7步 - 客户端获取响应并显示帐户余额

我以前从事过电子商务/支付解决方案,而IAP则采取其他方式,但通常支付网关会将收据服务器发送到服务器进行验证.我们总是有消息队列排序解决方案,以确保所有事务都是稳定和可维护的.

我的问题是:

  1. 验证IAP收据的最佳做法是什么?如何避免来自我们服务器的验证中断?(例如,用户花钱并在客户端上完成交易,但在验证服务器上的收据时失败.没有IAP恢复事务支持.)

  2. Apple IAP更有可能成为完美的客户端解决方案.特别是在我的情况下,在用户付款后,他想立即收到硬币,而不是我们告诉他交易处理的情况,他的账户很快就会完成.在移动设备上具有响应式用户体验的优先级.你还在服务器上使用消息队列吗?

谢谢你的时间.

Ale*_*scu 1

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