回调方通常只等几秒,超时就判失败并重推,所以要先落库或丢进队列,立刻返回成功。
接口必须做幂等:用回调单号加一张去重表,或直接建唯一索引挡住重复写入。
业务处理放后台任务做,失败可重试,并把每次回调的原始报文存下来便于对账。
// 收到回调:先去重入队,再立刻应答
if (!redis.setnx('cb:' + orderNo, 1)) return res.json({code: 0});
await queue.add('handle', payload);
res.json({code: 0});
THE END






暂无评论内容