|
|
@@ -204,19 +204,21 @@ public class WeChatPaymentMininProgramStrategyImpl implements PaymentStrategy {
|
|
|
if (publicKey == null) {
|
|
|
return R.fail("店铺微信支付公钥未配置或加载失败");
|
|
|
}
|
|
|
- QueryByWxTradeNoRequest q = new QueryByWxTradeNoRequest();
|
|
|
- q.transactionId = storeOrder.getPayTradeNo();
|
|
|
- q.mchid = mchId;
|
|
|
- try {
|
|
|
- DirectAPIv3QueryResponse wxOrder = searchOrderRun(q, config, privateKey, publicKey);
|
|
|
- if (wxOrder != null && "SUCCESS".equals(wxOrder.tradeState)) {
|
|
|
- return R.fail("该支付单已在微信侧支付成功,请勿重复发起支付");
|
|
|
- }
|
|
|
- } catch (WXPayUtility.ApiException e) {
|
|
|
- if (e.getStatusCode() != 404 && !"ORDER_NOT_EXIST".equals(e.getErrorCode())) {
|
|
|
- log.error("预支付前查询微信订单失败 out_trade_no={}, status={}, code={}, msg={}",
|
|
|
- storeOrder.getPayTradeNo(), e.getStatusCode(), e.getErrorCode(), e.getErrorMessage());
|
|
|
- return R.fail("查询微信支付订单失败:" + (e.getErrorMessage() != null ? e.getErrorMessage() : e.getMessage()));
|
|
|
+ if(storeOrder.getPayTradeNo() != null) {
|
|
|
+ QueryByWxTradeNoRequest q = new QueryByWxTradeNoRequest();
|
|
|
+ q.transactionId = storeOrder.getPayTradeNo();
|
|
|
+ q.mchid = mchId;
|
|
|
+ try {
|
|
|
+ DirectAPIv3QueryResponse wxOrder = searchOrderRun(q, config, privateKey, publicKey);
|
|
|
+ if (wxOrder != null && "SUCCESS".equals(wxOrder.tradeState)) {
|
|
|
+ return R.fail("该支付单已在微信侧支付成功,请勿重复发起支付");
|
|
|
+ }
|
|
|
+ } catch (WXPayUtility.ApiException e) {
|
|
|
+ if (e.getStatusCode() != 404 && !"ORDER_NOT_EXIST".equals(e.getErrorCode())) {
|
|
|
+ log.error("预支付前查询微信订单失败 out_trade_no={}, status={}, code={}, msg={}",
|
|
|
+ storeOrder.getPayTradeNo(), e.getStatusCode(), e.getErrorCode(), e.getErrorMessage());
|
|
|
+ return R.fail("查询微信支付订单失败:" + (e.getErrorMessage() != null ? e.getErrorMessage() : e.getMessage()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
String newPayTradeNo = "WX" + storeOrder.getId() + "_" + System.currentTimeMillis();
|