From 81d6b0727f7d9623ff8764e8e66c860ef4dd25c5 Mon Sep 17 00:00:00 2001 From: wangqx Date: Fri, 26 Sep 2025 16:36:12 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-prod.yml | 1 + .../transaction/kit/WechatPaymentSetting.java | 5 + .../kit/plugin/wechat/WechatPlugin.java | 110 +----------------- 3 files changed, 7 insertions(+), 109 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index b82409107..cf01dbb62 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -273,6 +273,7 @@ wechat: transfer-notify-url: https://wuzhongjie.com.cn/prod-api/trans/withdraw/callback # 转账回调地址 app-id: wxebcdaea31881caab # 应用ID secret: 71826d76bad096ec5407897c6ed1391f # 应用密钥 + callback-url: https://wuzhongjie.com.cn/prod-api/app/pay/callback/WECHAT mini-program: # app-id: wx87a5db19138da60d # secret: 856ca8bae38ccaecc1353c9abedf6b41 diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/WechatPaymentSetting.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/WechatPaymentSetting.java index 7e2a55de0..77965d893 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/WechatPaymentSetting.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/WechatPaymentSetting.java @@ -55,4 +55,9 @@ public class WechatPaymentSetting { private String apiV3Key; private String privateKeyPath; + + /** + * 回调地址 + */ + private String callbackUrl; } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/plugin/wechat/WechatPlugin.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/plugin/wechat/WechatPlugin.java index 94363fbe5..11ebabe24 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/plugin/wechat/WechatPlugin.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/plugin/wechat/WechatPlugin.java @@ -117,52 +117,6 @@ public class WechatPlugin implements Payment { public R h5pay(HttpServletRequest request, HttpServletResponse response1, PayParam payParam) { try { -// CashierParam cashierParam = cashierSupport.cashierParam(payParam); -// -// //支付参数准备 -// SceneInfo sceneInfo = new SceneInfo(); -// sceneInfo.setPayer_client_ip(IpKit.getRealIp(request)); -// H5Info h5Info = new H5Info(); -// h5Info.setType("WAP"); -// sceneInfo.setH5_info(h5Info); -// -// //支付金额 -// Integer fen = CurrencyUtil.fen(cashierParam.getPrice()); -// //第三方付款订单 -// String outOrderNo = SnowFlake.getIdStr(); -// //过期时间 -// String timeExpire = DateTimeZoneUtil.dateToTimeZone(System.currentTimeMillis() + 1000 * 60 * 3); -// -// //回传数据 -// String attach = URLEncoder.createDefault().encode(JSONUtil.toJsonStr(payParam), StandardCharsets.UTF_8); -// -// -// WechatPaymentSetting setting = wechatPaymentSetting(); -// String appid = setting.getServiceAppId(); -// if (appid == null) { -// throw new ServiceException(ResultCode.WECHAT_PAYMENT_NOT_SETTING); -// } -// UnifiedOrderModel unifiedOrderModel = new UnifiedOrderModel() -// .setAppid(appid) -// .setMchid(setting.getMchId()) -// .setDescription(cashierParam.getDetail()) -// .setOut_trade_no(outOrderNo) -// .setTime_expire(timeExpire) -// .setAttach(attach) -// .setNotify_url(notifyUrl(apiProperties.getBuyer(), PaymentMethodEnum.WECHAT)) -// .setAmount(new Amount().setTotal(fen)).setScene_info(sceneInfo); -// -// log.info("统一下单参数 {}", JSONUtil.toJsonStr(unifiedOrderModel)); -// PaymentHttpResponse response = WechatApi.v3( -// RequestMethodEnums.POST, -// WechatDomain.CHINA.toString(), -// WechatApiEnum.H5_PAY.toString(), -// setting.getMchId(), -// setting.getSerialNumber(), -// null, -// setting.getApiclient_key(), -// JSONUtil.toJsonStr(unifiedOrderModel) -// ); return null; // return R.ok(JSONUtil.toJsonStr(response.getBody())); @@ -176,68 +130,6 @@ public class WechatPlugin implements Payment { public R jsApiPay(HttpServletRequest request, PayParam payParam) { try { -// Connect connect = connectService.queryConnect( -// ConnectQueryDTO.builder().userId(UserContext.getCurrentUser().getId()).unionType(ConnectEnum.WECHAT.name()).build() -// ); -// if (connect == null) { -// return null; -// } -// -// Payer payer = new Payer(); -// payer.setOpenid(connect.getUnionId()); -// -// CashierParam cashierParam = cashierSupport.cashierParam(payParam); -// -// //支付金额 -// Integer fen = CurrencyUtil.fen(cashierParam.getPrice()); -// //第三方付款订单 -// String outOrderNo = SnowFlake.getIdStr(); -// //过期时间 -// String timeExpire = DateTimeZoneUtil.dateToTimeZone(System.currentTimeMillis() + 1000 * 60 * 3); -// -// String attach = URLEncoder.createDefault().encode(JSONUtil.toJsonStr(payParam), StandardCharsets.UTF_8); -// -// WechatPaymentSetting setting = wechatPaymentSetting(); -// String appid = setting.getServiceAppId(); -// if (appid == null) { -// throw new ServiceException(ResultCode.WECHAT_PAYMENT_NOT_SETTING); -// } -// UnifiedOrderModel unifiedOrderModel = new UnifiedOrderModel() -// .setAppid(appid) -// .setMchid(setting.getMchId()) -// .setDescription(cashierParam.getDetail()) -// .setOut_trade_no(outOrderNo) -// .setTime_expire(timeExpire) -// .setAttach(attach) -// .setNotify_url(notifyUrl(apiProperties.getBuyer(), PaymentMethodEnum.WECHAT)) -// .setAmount(new Amount().setTotal(fen)) -// .setPayer(payer); -// -// log.info("统一下单参数 {}", JSONUtil.toJsonStr(unifiedOrderModel)); -// PaymentHttpResponse response = WechatApi.v3( -// RequestMethodEnums.POST, -// WechatDomain.CHINA.toString(), -// WechatApiEnum.JS_API_PAY.toString(), -// setting.getMchId(), -// setting.getSerialNumber(), -// null, -// setting.getApiclient_key(), -// JSONUtil.toJsonStr(unifiedOrderModel) -// ); -// //根据证书序列号查询对应的证书来验证签名结果 -// boolean verifySignature = WxPayKit.verifySignature(response, getPlatformCert()); -// log.info("verifySignature: {}", verifySignature); -// log.info("统一下单响应 {}", response); -// -// if (verifySignature) { -// String body = response.getBody(); -// JSONObject jsonObject = JSONUtil.parseObj(body); -// String prepayId = jsonObject.getStr("prepay_id"); -// Map map = WxPayKit.jsApiCreateSign(appid, prepayId, setting.getApiclient_key()); -// log.info("唤起支付参数:{}", map); -// -// return ResultUtil.data(map); -// } log.error("微信支付参数验证错误,请及时处理"); throw new ServiceException(ResultCode.PAY_ERROR); } catch (Exception e) { @@ -280,7 +172,7 @@ public class WechatPlugin implements Payment { .setOut_trade_no(outOrderNo) .setTime_expire(timeExpire) .setAttach(attach) - .setNotify_url("http://cjh.wuzhongjie.com.cn/app/payment/callback/" + PaymentMethodEnum.WECHAT) + .setNotify_url(setting.getCallbackUrl()) .setAmount(new Amount().setTotal(fen));