使用POST请求到支付网关进行多个事务的最佳做法是什么?
我们的用例是:
-
我们需要立即付款,并安排其他时间(月等)
-
我们希望避免强制用户输入两次相同的(CC / ACH)信息
-
我们希望避免敏感数据触及我们的服务器,因此请查看将其直接发送到支付网关
-
我们希望处理呈现给用户的所有UI(即不希望用户需要与支付网关ui / forms / etc进行交互)
-
大多数支付网关我们足够灵活,可以在一次POST呼叫中执行初始计划(其中一些可以保存敏感信息并返回我们可以进行后续交易的令牌,但大多数都可以保持我们的选项保持打开状态)
-
我们可以依赖在浏览器中启用了javascript的用户
最好的方法是什么?
我们目前的计划是:
-
对支付网关进行两次ajax POST调用(一次用于初始付款,另一次用于设置预定付款)
-
等待网关将每个网关重定向到我们的服务器,并记录成功/失败
-
同时,表单页面轮询服务器以查看两个事务是否已完成/超时,如果出现错误则显示错误(并让用户有机会立即在表单中更正),或者如果两者都重定向到成功页面交易成功
是否有更好的方法来做这件事和/或这样做有问题吗?
1 回答
回答我自己的问题以防其他人有同样的困境:
我们最终做的解决方案是选择一个支付网关,该支付网关可以存储关于用户的支付信息并返回参考ID以用于将来的支付 .
我们对服务执行了正常的单个POST请求,该请求处理了第一个事务并存储了信息 . 重定向回我们的应用后,我们使用提供的付款方式参考ID创建了另一个交易 .