Browse Source

fix bug

release_toaliyun_real
lin 2 years ago
parent
commit
d8a324ab5c
3 changed files with 56 additions and 11 deletions
  1. +16
    -11
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  2. +36
    -0
      mallinkService/src/main/java/com/iformall/exception/PayPlatOrderNotExistsException.java
  3. +4
    -0
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java

+ 16
- 11
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java View File

@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.exception.MallinkException;
import com.iformall.exception.PayPlatOrderNotExistsException;
import com.iformall.service.WxAppinfoService;
import com.iformall.service.WxOrderService;
import com.iformall.service.WxPayOrderService;
@@ -322,17 +323,21 @@ public class OrderExpiringSchedule {
}
//Map<String, String> retMap = WxPayOrderServiceHelper.wxOrderPayStatusMap(wxpayOrder, order, appInfo, payAccount);
//int status = WxPayOrderServiceHelper.getPayStatusFromMap(retMap, wxpayOrder.getPayOrderNo());
PayQueryAdapterResult payResult = payServiceFactory.getPayAdapterService(wxpayOrder.getPayVendor(),payAccount.getPayVersion()).queryPayStatus(wxpayOrder, appInfo, payAccount);
//如果是支付成功,并且需要重试成功流程,
if (EnumPayStatus.PAY_STATUS_SUCCESS.getCode().intValue() == payResult.getCode()) {
if (autoReHandle) {
WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(wxpayOrder.getComposeOrder()).getComposeOrder(wxpayOrder.getOrderId(), wxpayOrder.getTenantId());
//无论是不是批量的,都是执行单个订单
composeOrder.setSingleOrder(order);
wxPayOrderService.handleSuccessOrder(wxpayOrder, composeOrder, payResult, true,true);
}
return true;
}
try {
PayQueryAdapterResult payResult = payServiceFactory.getPayAdapterService(wxpayOrder.getPayVendor(),payAccount.getPayVersion()).queryPayStatus(wxpayOrder, appInfo, payAccount);
//如果是支付成功,并且需要重试成功流程,
if (EnumPayStatus.PAY_STATUS_SUCCESS.getCode().intValue() == payResult.getCode()) {
if (autoReHandle) {
WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(wxpayOrder.getComposeOrder()).getComposeOrder(wxpayOrder.getOrderId(), wxpayOrder.getTenantId());
//无论是不是批量的,都是执行单个订单
composeOrder.setSingleOrder(order);
wxPayOrderService.handleSuccessOrder(wxpayOrder, composeOrder, payResult, true,true);
}
return true;
}
}catch(PayPlatOrderNotExistsException pe) {
return false;
}
return false;
}


+ 36
- 0
mallinkService/src/main/java/com/iformall/exception/PayPlatOrderNotExistsException.java View File

@@ -0,0 +1,36 @@
package com.iformall.exception;

import com.iformall.common.ErrorCode;

/**
* Created by Stormeye on 2018/8/10.
*/
public class PayPlatOrderNotExistsException extends RuntimeException {

private int errorCode;
private String message;

public PayPlatOrderNotExistsException(int errorC, String message) {
this.errorCode = errorC;
this.message = message;
}

public PayPlatOrderNotExistsException(ErrorCode errCode) {
this.errorCode = errCode.getCode();
this.message = errCode.getMessage();
}

public PayPlatOrderNotExistsException() {
super();
}

public int getErrorCode() {
return errorCode;
}

@Override
public String getMessage() {
return message;
}

}

+ 4
- 0
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java View File

@@ -27,6 +27,7 @@ import com.iformall.enums.EnumPayMode;
import com.iformall.enums.EnumPayShare;
import com.iformall.enums.EnumPayStatus;
import com.iformall.exception.MallinkException;
import com.iformall.exception.PayPlatOrderNotExistsException;
import com.iformall.pay.WxPay;
import com.iformall.pay.WxPayOrderP;
import com.iformall.pay.WxPayOrderSP;
@@ -283,6 +284,9 @@ public class WxMiniAppPayV3AdapterService extends BaseWxPayV3AdapterService impl
}
return getPayCommonQueryResult(response);
}catch(WxPayException e) {
if ("订单不存在".equals(e.getMessage())){
throw new PayPlatOrderNotExistsException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),e.getCustomErrorMsg());
}
log.error("pay common v3 query response error",e);
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),e.getCustomErrorMsg());
}


Loading…
Cancel
Save