引用自:http://www.jianshu.com/p/fdde21b89924
这里写图片描述

1
2
3
4
5
6
7
8
9
10
//第1步锁当前支付单
PaymentInfo resultPaymentInfo = commonPayCoreService
.queryPaymentForUpdate(createPaymentInfo.getId());
if (resultPaymentInfo.isFinalStatus()) {
//第2步,判断当前支付单状态,如果是终态,则直接返回
//不做任何更新
return resultPaymentInfo;
}
//第3步更新当前支付单状态到终态,并完成相关业务逻辑(支付成功)
payCoreService.updateRequestResult(payChannelResult);