【发布时间】:2014-10-13 23:05:46
【问题描述】:
我正在尝试在我的 express.js 路由之一中实现条带结帐流程。为此,我有:
- 官方 Node.js Stripe 模块
- 官方客户端 Stripe 模块
- 一个 json 记录器,我用来记录诸如 javascript 错误、传入请求和来自外部服务(如 stripe、mongodb 等)的响应……
- 使用 mongoose 定义的
Order模型 - MongoDB ODM
我的步骤如下:
客户:
- 提交包含条纹支付令牌的订单详细信息
服务器:
- 创建未付款订单并保存到数据库(
order.status是created) - 使用 Stripe 客户端向用户的信用卡/借记卡收费
- 更新订单并保存到数据库(
order.status是accepted或failed,具体取决于 Stripe 的响应)
问题:如果在第 2 步之后支付成功,但在第 3 步更新订单时出现错误(由于数据库服务器错误、中断或类似原因),有哪些合适的方法来处理此失败并有可能从中恢复?
【问题讨论】:
-
一个确认系统?再次尝试直到收到 +ve ACK
-
好主意。用 5 次尝试 (github.com/caolan/async#retry) 将 db save 调用包装在 async.js 重试函数中可能会很有用。我认为还有进一步改进的空间。
标签: javascript node.js express payment stripe-payments