现在我想实现一个功能,提交订单时把订单中所需产品的数量库存锁定,然后待支付后再去执行减少库存操作;
这样做的目的是为了避免用户到支付那一步,产品的库存量少于下单量导致订单要返回修改缺少库存的商品数量。
我现在的思路是,
1、提交订单,然后调用云函数发起一个 startTransaction
事务;然后返回事务的句柄;
2、支付成功后,再用一个执行事务云函数去执行事务;执行事务云函数接收一个变量,变量为发起startTransaction
事务返回的句柄
不知道这样的流程是对的不?
下面是我测试的代码
发起事务代码
执行事务代码
测试时发现是错误的 …………
还请大神们指点下;万分感谢
我第一次见事务是这么玩的
我刚刚想了个折中的方法;
支付前先生成一个预订单,扣减相关产品的库存,支付状态为未支付;待发起支付后,成功就修改预订单状态,流程完成;
如果支付失败或者放弃支付就把订单中相关产品的库存返还,流程完成;
但存在个问题,这样操作相当损耗云数据库的资源