|
@@ -8,9 +8,11 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.github.binarywang.wxpay.bean.profitsharing.*;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayMicropayRequest;
|
|
|
+import com.github.binarywang.wxpay.bean.request.WxPayOrderReverseRequest;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
|
|
import com.github.binarywang.wxpay.bean.result.WxPayMicropayResult;
|
|
|
+import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
|
|
|
import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
|
|
|
import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderResult;
|
|
|
import com.github.binarywang.wxpay.constant.WxPayConstants;
|
|
@@ -1246,12 +1248,23 @@ public class WechatLogic {
|
|
|
|
|
|
WxPayMicropayResult payResult = null;
|
|
|
try {
|
|
|
+ WxPayOrderQueryResult wxPayOrderQueryResult = payService.queryOrder("", id);
|
|
|
+
|
|
|
+
|
|
|
+ if (!wxPayOrderQueryResult.getReturnCode().equals("SUCCESS")
|
|
|
+ || !wxPayOrderQueryResult.getResultCode().equals("SUCCESS") || !wxPayOrderQueryResult.getTradeState().equals("SUCCESS")){
|
|
|
+
|
|
|
+ WxPayOrderReverseRequest wxPayOrderReverseRequest = new WxPayOrderReverseRequest();
|
|
|
+ wxPayOrderReverseRequest.setOutTradeNo(id);
|
|
|
+ payService.reverseOrder(wxPayOrderReverseRequest);
|
|
|
+ }
|
|
|
+
|
|
|
payResult = payService.micropay(request);
|
|
|
log.info("商户扫码支付生成订单响应: {}", payResult);
|
|
|
} catch (WxPayException e) {
|
|
|
log.error("商户扫码支付失败: {}", payResult);
|
|
|
log.error("商户扫码支付失败: {}", e.toString());
|
|
|
- throw new RemoteServiceException("扫码支付失败,请刷新二维码,再次尝试扫码");
|
|
|
+ throw new RemoteServiceException("扫码支付失败,请刷新二维码,再次尝试扫码"+e.getErrCodeDes());
|
|
|
}
|
|
|
if (payResult == null || WxPayConstants.ResultCode.FAIL.equals(payResult.getReturnCode())) {
|
|
|
|