Procházet zdrojové kódy

//

release_toaliyun_real
xhxu před 3 roky
rodič
revize
7afdbb1270
2 změnil soubory, kde provedl 26 přidání a 17 odebrání
  1. +22
    -17
      mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java
  2. +4
    -0
      mallinkService/src/main/java/com/iformall/service/pay/service/refund/wx/v3/WxRefundV3AdapterService.java

+ 22
- 17
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java Zobrazit soubor

@@ -509,13 +509,21 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
return new ResultData(ErrorCode.PAY_ORDER_NOT_FOUND);
}

// 创建退款订单
final IdWorker idWorker = IdWorker.get();
Long refundId = idWorker.nextId();

WxRefundOrder record = new WxRefundOrder();
record.updateTenantInfo(wxOrder);
record.setPayOrderNo(String.valueOf(payOrder.getId()));
record.setOrderId(wxOrder.getId());
record.setNotStatus(EnumRefundStatus.REFUND_FAIL.getCode());
// check 是否有退款订单
List<WxRefundOrder> refundList = wxRefundOrderMapper.findList(record);
if (refundList.size() > 0) {
logger.error("退款订单已存在, 无法再提交退款申请");
throw new MallinkException(ErrorCode.REFUND_ORDER_EXIST.getCode(), "退款订单已存在, 无法再提交退款申请");
}

// 创建退款订单
final IdWorker idWorker = IdWorker.get();
Long refundId = idWorker.nextId();

//String out_refund_id = String.valueOf(refundId);

@@ -543,13 +551,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
logger.error("退款订单数据库插入出错: " + record.toString());
throw new MallinkException(ErrorCode.DB_FAIL);
}
// check 是否有退款订单
List<WxRefundOrder> refundList = wxRefundOrderMapper.findList(record);
if (refundList.size() > 0) {
logger.error("退款订单已存在, 无法再提交退款申请");
throw new MallinkException(ErrorCode.REFUND_ORDER_EXIST.getCode(), "退款订单已存在, 无法再提交退款申请");
}

WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId());
if (null == payAccount) {
throw new MallinkException(ErrorCode.PAY_ORDER_QUERY_ERROR.getCode(), "payAccount为空[payId:"+appInfo.getPayId()+"]");
@@ -735,8 +737,16 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
}

WxRefundOrder record = new WxRefundOrder();
record.updateTenantInfo(wxOrder);
record.setPayOrderNo(String.valueOf(payOrder.getId()));
record.setOrderId(orderId);
record.setNotStatus(EnumRefundStatus.REFUND_FAIL.getCode());
// check 是否有退款订单
List<WxRefundOrder> refundList = wxRefundOrderMapper.findList(record);
if (refundList.size() > 0) {
logger.error("退款订单已存在, 无法再提交退款申请");
throw new MallinkException(ErrorCode.REFUND_ORDER_EXIST.getCode(), "退款订单已存在, 无法再提交退款申请");
}
// 创建退款订单
Long refundId = idWorker.nextId();
String out_refund_id = String.valueOf(refundId);
@@ -770,12 +780,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
logger.error("order:("+orderId+")"+appInfo.getPayId()+"查询不到WxPayAccount");
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), appInfo.getPayId()+"查询不到WxPayAccount");
}
// check 是否有退款订单
List<WxRefundOrder> refundList = wxRefundOrderMapper.findList(record);
if (refundList.size() > 0) {
logger.error("退款订单已存在, 无法再提交退款申请");
throw new MallinkException(ErrorCode.REFUND_ORDER_EXIST.getCode(), "退款订单已存在, 无法再提交退款申请");
}

RefundAdapterResult refundResult = payServiceFactory.getRefundPayAdapterService(payOrder.getPayVendor(),payAccount.getPayVersion()).refund(payAccount, appInfo, record, payOrder,orderId, null);
if (refundResult.isSuccess()) {
record.setRefundOrderStatus(EnumRefundStatus.REFUND_REQ_SUCCESS.getCode());


+ 4
- 0
mallinkService/src/main/java/com/iformall/service/pay/service/refund/wx/v3/WxRefundV3AdapterService.java Zobrazit soubor

@@ -74,9 +74,11 @@ public class WxRefundV3AdapterService implements RefundPayAdapterService{
private V3PayRefundReq getReq(WxPayAccount payAccount,WxAppinfo appInfo,WxRefundOrder record,WxPayOrder payOrder,Long orderId,EnumPayType payType) {
V3PayRefundReq req = new V3PayRefundReq();
log.error("ceshi+"+JSON.toJSONString(payAccount));
//直连
if (payAccount.getMchType() == EnumPayMchType.DIRECT.getCode()) {
WxComposeChildOrderShare share = payOrder.getChildOrderShare(orderId);
log.error("ceshi+"+JSON.toJSONString(share));
req.setSub_mchid(share.getMerchantUid());
//总分
}else if (payAccount.getMchType() == EnumPayMchType.TOTAL.getCode()) {
@@ -84,7 +86,9 @@ public class WxRefundV3AdapterService implements RefundPayAdapterService{
}else {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"当前支付模式非法");
}
log.error("ceshi+"+JSON.toJSONString(payOrder));
req.setOut_trade_no(payOrder.getPayOrderNo());
log.error("ceshi+"+JSON.toJSONString(record));
req.setOut_refund_no(String.valueOf(record.getId()));
try {
req.setReason(WxPayV3.handleChinese(payType.getMessage()));


Načítá se…
Zrušit
Uložit