Commit 19851620 authored by terrfly's avatar terrfly
Browse files

支付成功/ 查单添加 渠道用户信息;

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