重复支付
2021-04-03 09:34:19 13 举报
重复支付解决方案
作者其他创作
大纲/内容
database
用户
确认支付
支付成功后通知发货
update交交易记录
防重幂等操作
下单
悲观锁防重:begin transaction;select * from order_info where id = \"111\" for update;java 代码判断 status 是否是“初始”,是则发货,否则return;update order_info set status =\"成功\" where id=\"111\" ,并发货;commit;
防重操作
伪防重:begin transaction ;select * from order_info where id = \"111\"java 代码判断status 是否== \"初始\" 执行3,否则直接return;update order_info set status =\"成功\" where id =\"111\
支付成功/重试
下单支付
交易表订单id订单状态
insert交易记录
交易系统
商家系统
支付系统
乐观锁防重:begin transaction;select * from order_info where id = \"111\" java 代码判断 status 是否是“初始”,是则发货,否则return;update order_info set status =\"成功\" where id=\"111\" and status= \"初始\" ,判断影响行数,为1时发货;commit;
0 条评论
下一页