diff --git a/ruoyi-admin/src/main/java/com/ruoyi/op/BusOp.java b/ruoyi-admin/src/main/java/com/ruoyi/op/BusOp.java index 71271bae..10c80dfd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/op/BusOp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/op/BusOp.java @@ -60,7 +60,7 @@ public class BusOp { if(startTime != null && endTime != null){ List list = rechargeOrderService.list(Wrappers.lambdaQuery(RechargeOrder.class) .between(RechargeOrder::getCreateTime, startTime, endTime) - .eq(RechargeOrder::getPayStatus, PayStatusEnum.READY_PAY)); + .eq(RechargeOrder::getPayStatus, PayStatusEnum.READY_PAY.getCode())); for (RechargeOrder order : list) { try { payManager.queryAndUpdateCallbackPayStatus(order.getOrderNo(),"wx228d04f4dbf691c6"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java index fdafb386..1f185c51 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java @@ -120,7 +120,7 @@ public class PayController { model.setOutTradeNo(payOrderInfo.getOrderNo()); model.setTimeoutExpress("30m"); model.setTotalAmount(payOrderInfo.getPrice().toString()); - String notifyUrl = AliPayApiConfigKit.getAliPayApiConfig().getServiceUrl(); + String notifyUrl = AliPayApiConfigKit.getAliPayApiConfig().getDomain(); String orderInfo = AliPayApi.appPayToResponse(model, notifyUrl+NOTIFY_ALI_URL).getBody(); PayReturnResp resp = new PayReturnResp(); resp.setData(orderInfo); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayConfigManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayConfigManager.java index 10ec104a..d9837864 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayConfigManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayConfigManager.java @@ -76,6 +76,45 @@ public class PayConfigManager { return using.get(payIds.get(0)); } + public boolean initAliPayConfig(PayConfig payConfig) { + if(payConfig == null){ + return false; + } + AliPayApiConfig aliPayApiConfig; + try { + aliPayApiConfig = AliPayApiConfigKit.getApiConfig(payConfig.getAppid()); + } catch (Exception e) { + log.error("实例化AliPayApiConfig..."); + // 如果Map中没有当前支付宝的实例就初始化并添加到Map中 + if(caiProperties.isOpenPayProxy()){ + aliPayApiConfig = AliPayApiConfig.builder() + .setAppId(payConfig.getAppid()) + .setAliPayPublicKey(payConfig.getPublicKey()) + .setCharset("UTF-8") + .setPrivateKey(payConfig.getPrivateKey()) + .setServiceUrl(null) + .setDomain(payConfig.getNotifyUrl()) + .setSignType("RSA2") + .setProxyIp(caiProperties.getProxyIp()) + .setProxyPort(caiProperties.getProxyHost()) + .buildProxy(); + }else{ + aliPayApiConfig = AliPayApiConfig.builder() + .setAppId(payConfig.getAppid()) + .setAliPayPublicKey(payConfig.getPublicKey()) + .setCharset("UTF-8") + .setPrivateKey(payConfig.getPrivateKey()) + .setServiceUrl(null) + .setDomain(payConfig.getNotifyUrl()) + .setSignType("RSA2") + .build(); + } + + } + AliPayApiConfigKit.setThreadLocalAliPayApiConfig(aliPayApiConfig); + return true; + } + public boolean initAliPay() { PayConfig payConfig = this.getAliConfig(); @@ -94,7 +133,8 @@ public class PayConfigManager { .setAliPayPublicKey(payConfig.getPublicKey()) .setCharset("UTF-8") .setPrivateKey(payConfig.getPrivateKey()) - .setServiceUrl(payConfig.getNotifyUrl()) + .setServiceUrl(null) + .setDomain(payConfig.getNotifyUrl()) .setSignType("RSA2") .setProxyIp(caiProperties.getProxyIp()) .setProxyPort(caiProperties.getProxyHost()) @@ -105,7 +145,8 @@ public class PayConfigManager { .setAliPayPublicKey(payConfig.getPublicKey()) .setCharset("UTF-8") .setPrivateKey(payConfig.getPrivateKey()) - .setServiceUrl(payConfig.getNotifyUrl()) + .setServiceUrl(null) + .setDomain(payConfig.getNotifyUrl()) .setSignType("RSA2") .build(); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java index 39f96bf8..9977bf0a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java @@ -48,18 +48,16 @@ public class PayManager { private PayTotalService payTotalService; @Autowired private PayConfigService payConfigService; + @Autowired + private PayConfigManager payConfigManager; public PayQueryModel queryOrder(PayConfig payConfig,String orderNo,String appid) throws AlipayApiException { if(PayTypeEnum.ALI.getCode().equals(payConfig.getPayType())){ - AliPayApiConfig aliPayApiConfig = AliPayApiConfig.builder() - .setAppId(payConfig.getAppid()) - .setAliPayPublicKey(payConfig.getPublicKey()) - .setCharset("UTF-8") - .setPrivateKey(payConfig.getPrivateKey()) - .setServiceUrl(null) - .setSignType("RSA2") - .build(); - AliPayApiConfigKit.setThreadLocalAliPayApiConfig(aliPayApiConfig); + boolean bool = payConfigManager.initAliPayConfig(payConfig); + if(!bool){ + log.error("订单查询 初始化支付宝失败 payConfig={}",JSON.toJSONString(payConfig)); + return PayQueryModel.fail(); + } AlipayTradeQueryModel model = new AlipayTradeQueryModel(); model.setOutTradeNo(orderNo); String body = AliPayApi.tradeQueryToResponse(model).getBody();