我刚刚用IAP制作iOS应用程序来购买虚拟硬币(耗材).后端是
Ruby on Rails.我现在对整个解决方案有一些担忧.
我目前的IAP流程描述如下:
>步骤1 – iOS客户端向我们的后端发送请求并获取产品ID.
>步骤2 – 客户端通过Store Kit检索产品列表,其中包含步骤1中的ID
>第3步 – 用户点击购买,客户端向Store Kit发送付款请求
>步骤4 – 完成交易后,客户将收据令牌发送到我们的后端
>步骤5 – 服务器首先验证收据,以确保它是有效的验证
>步骤6 – 服务器调用App Store验证收据并处理交换(DB中的充值帐户)
> STEP 7 – 客户端获得响应并显示帐户余额
我以前从事过电子商务/支付解决方案,而IAP则采取其他方式,但通常支付网关会将收据服务器发送到服务器进行验证.我们总是有消息队列排序解决方案,以确保所有事务都是稳定和可维护的.
我的问题是:
>验证IAP收据的最佳做法是什么?如何避免来自我们服务器的验证中断? (例如,用户花钱并在客户端上完成交易,但在验证服务器上的收据时失败.没有IAP恢复事务支持.)
> Apple IAP更可能是一个完美的客户端解决方案.特别是在我的情况下,在用户付款后,他想立即收到硬币,而不是我们告诉他交易正在处理的情况,他的账户很快就会完成.在移动设备上具有响应式用户体验的优先级.你还在服务器上使用消息队列吗?
谢谢你的时间.
解决方法
您可能会发现
http://helios.io/很有用.它结合了四个有用的iOS相关宝石,其中一个是
https://github.com/mattt/rack-in-app-purchase