支付成功/ 查单添加 渠道用户信息;
This commit is contained in:
parent
96eaa92e30
commit
1985162085
|
|
@ -84,6 +84,7 @@ public class AliBar extends AlipayPaymentService {
|
|||
//放置 响应数据
|
||||
channelRetMsg.setChannelAttach(alipayResp.getBody());
|
||||
channelRetMsg.setChannelOrderId(alipayResp.getTradeNo());
|
||||
channelRetMsg.setChannelUserId(alipayResp.getBuyerUserId()); //渠道用户标识
|
||||
|
||||
// ↓↓↓↓↓↓ 调起接口成功后业务判断务必谨慎!! 避免因代码编写bug,导致不能正确返回订单状态信息 ↓↓↓↓↓↓
|
||||
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ public class WxBar extends WxpayPaymentService {
|
|||
WxPayMicropayResult wxPayMicropayResult = wxPayService.micropay(request);
|
||||
|
||||
channelRetMsg.setChannelOrderId(wxPayMicropayResult.getTransactionId());
|
||||
channelRetMsg.setChannelUserId(wxPayMicropayResult.getOpenid());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
|
||||
} catch (WxPayException e) {
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ public abstract class AbstractPayOrderController extends ApiController {
|
|||
}
|
||||
|
||||
payOrder.setWayCode(wayCode); // 需要将订单更新 支付方式
|
||||
payOrder.setChannelUser(bizRQ.getChannelUserId()); //更新渠道用户信息
|
||||
bizRQ.setMchNo(payOrder.getMchNo());
|
||||
bizRQ.setAppId(payOrder.getAppId());
|
||||
bizRQ.setMchOrderNo(payOrder.getMchOrderNo());
|
||||
|
|
@ -362,6 +363,12 @@ public abstract class AbstractPayOrderController extends ApiController {
|
|||
payOrder.setErrCode(channelRetMsg.getChannelErrCode());
|
||||
payOrder.setErrMsg(channelRetMsg.getChannelErrMsg());
|
||||
|
||||
// 聚合码场景 订单对象存在会员信息, 不可全部以上游为准。
|
||||
if(StringUtils.isNotEmpty(channelRetMsg.getChannelUserId())){
|
||||
payOrder.setChannelUser(channelRetMsg.getChannelUserId());
|
||||
}
|
||||
|
||||
|
||||
|
||||
boolean isSuccess = payOrderService.updateInit2Ing(payOrder.getPayOrderId(), payOrder);
|
||||
if(!isSuccess){
|
||||
|
|
@ -369,7 +376,7 @@ public abstract class AbstractPayOrderController extends ApiController {
|
|||
}
|
||||
|
||||
isSuccess = payOrderService.updateIng2SuccessOrFail(payOrder.getPayOrderId(), payOrder.getState(),
|
||||
channelRetMsg.getChannelOrderId(), channelRetMsg.getChannelErrCode(), channelRetMsg.getChannelErrMsg());
|
||||
channelRetMsg.getChannelOrderId(), channelRetMsg.getChannelUserId(), channelRetMsg.getChannelErrCode(), channelRetMsg.getChannelErrMsg());
|
||||
if(!isSuccess){
|
||||
throw new BizException("更新订单异常!");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ public class ChannelNoticeController extends AbstractCtrl {
|
|||
//明确失败
|
||||
}else if(ChannelRetMsg.ChannelState.CONFIRM_FAIL == notifyResult.getChannelState()) {
|
||||
|
||||
updateOrderSuccess = payOrderService.updateIng2Fail(payOrderId, notifyResult.getChannelOrderId(), notifyResult.getChannelErrCode(), notifyResult.getChannelErrMsg());
|
||||
updateOrderSuccess = payOrderService.updateIng2Fail(payOrderId, notifyResult.getChannelOrderId(), notifyResult.getChannelUserId(), notifyResult.getChannelErrCode(), notifyResult.getChannelErrMsg());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -153,5 +153,10 @@ public class UnifiedOrderRQ extends AbstractMchAppRQ {
|
|||
return this;
|
||||
}
|
||||
|
||||
/** 获取渠道用户ID **/
|
||||
public String getChannelUserId(){
|
||||
return this.channelUser;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,4 +40,9 @@ public class AliJsapiOrderRQ extends UnifiedOrderRQ {
|
|||
this.setWayCode(CS.PAY_WAY_CODE.ALI_JSAPI);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getChannelUserId(){
|
||||
return this.buyerUserId;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,4 +40,8 @@ public class WxJsapiOrderRQ extends UnifiedOrderRQ {
|
|||
this.setWayCode(CS.PAY_WAY_CODE.WX_JSAPI);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getChannelUserId() {
|
||||
return this.openid;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ public class ChannelOrderReissueService {
|
|||
|
||||
// 查询成功
|
||||
if(channelRetMsg.getChannelState() == ChannelRetMsg.ChannelState.CONFIRM_SUCCESS) {
|
||||
if (payOrderService.updateIng2Success(payOrderId, channelRetMsg.getChannelOrderId())) {
|
||||
if (payOrderService.updateIng2Success(payOrderId, channelRetMsg.getChannelOrderId(), channelRetMsg.getChannelUserId())) {
|
||||
|
||||
//订单支付成功,其他业务逻辑
|
||||
payOrderProcessService.confirmSuccess(payOrder);
|
||||
|
|
@ -85,7 +85,7 @@ public class ChannelOrderReissueService {
|
|||
}else if(channelRetMsg.getChannelState() == ChannelRetMsg.ChannelState.CONFIRM_FAIL){ //确认失败
|
||||
|
||||
//1. 更新支付订单表为失败状态
|
||||
payOrderService.updateIng2Fail(payOrderId, channelRetMsg.getChannelOrderId(), channelRetMsg.getChannelErrCode(), channelRetMsg.getChannelErrMsg());
|
||||
payOrderService.updateIng2Fail(payOrderId, channelRetMsg.getChannelOrderId(), channelRetMsg.getChannelUserId(), channelRetMsg.getChannelErrCode(), channelRetMsg.getChannelErrMsg());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -64,16 +64,12 @@ public class PayOrderService extends ServiceImpl<PayOrderMapper, PayOrder> {
|
|||
updateRecord.setWayCode(payOrder.getWayCode());
|
||||
updateRecord.setMchFeeRate(payOrder.getMchFeeRate());
|
||||
updateRecord.setMchFeeAmount(payOrder.getMchFeeAmount());
|
||||
updateRecord.setChannelUser(payOrder.getChannelUser());
|
||||
|
||||
return update(updateRecord, new LambdaUpdateWrapper<PayOrder>()
|
||||
.eq(PayOrder::getPayOrderId, payOrderId).eq(PayOrder::getState, PayOrder.STATE_INIT));
|
||||
}
|
||||
|
||||
/** 更新订单状态 【支付中】 --》 【支付成功】 **/
|
||||
public boolean updateIng2Success(String payOrderId, String channelOrderNo){
|
||||
return updateIng2Success(payOrderId, channelOrderNo, null);
|
||||
}
|
||||
|
||||
/** 更新订单状态 【支付中】 --》 【支付成功】 **/
|
||||
public boolean updateIng2Success(String payOrderId, String channelOrderNo, String channelUserId){
|
||||
|
||||
|
|
@ -89,13 +85,14 @@ public class PayOrderService extends ServiceImpl<PayOrderMapper, PayOrder> {
|
|||
|
||||
|
||||
/** 更新订单状态 【支付中】 --》 【支付失败】 **/
|
||||
public boolean updateIng2Fail(String payOrderId, String channelOrderNo, String channelErrCode, String channelErrMsg){
|
||||
public boolean updateIng2Fail(String payOrderId, String channelOrderNo, String channelUserId, String channelErrCode, String channelErrMsg){
|
||||
|
||||
PayOrder updateRecord = new PayOrder();
|
||||
updateRecord.setState(PayOrder.STATE_FAIL);
|
||||
updateRecord.setErrCode(channelErrCode);
|
||||
updateRecord.setErrMsg(channelErrMsg);
|
||||
updateRecord.setChannelOrderNo(channelOrderNo);
|
||||
updateRecord.setChannelUser(channelUserId);
|
||||
|
||||
return update(updateRecord, new LambdaUpdateWrapper<PayOrder>()
|
||||
.eq(PayOrder::getPayOrderId, payOrderId).eq(PayOrder::getState, PayOrder.STATE_ING));
|
||||
|
|
@ -103,14 +100,14 @@ public class PayOrderService extends ServiceImpl<PayOrderMapper, PayOrder> {
|
|||
|
||||
|
||||
/** 更新订单状态 【支付中】 --》 【支付成功/支付失败】 **/
|
||||
public boolean updateIng2SuccessOrFail(String payOrderId, Byte updateState, String channelOrderNo, String channelErrCode, String channelErrMsg){
|
||||
public boolean updateIng2SuccessOrFail(String payOrderId, Byte updateState, String channelOrderNo, String channelUserId, String channelErrCode, String channelErrMsg){
|
||||
|
||||
if(updateState == PayOrder.STATE_ING){
|
||||
return true;
|
||||
}else if(updateState == PayOrder.STATE_SUCCESS){
|
||||
return updateIng2Success(payOrderId, channelOrderNo);
|
||||
return updateIng2Success(payOrderId, channelOrderNo, channelUserId);
|
||||
}else if(updateState == PayOrder.STATE_FAIL){
|
||||
return updateIng2Fail(payOrderId, channelOrderNo, channelErrCode, channelErrMsg);
|
||||
return updateIng2Fail(payOrderId, channelOrderNo, channelUserId, channelErrCode, channelErrMsg);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue