From b716afd262ff60ff1db0b1e7c95800e7ad2b7202 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 07 七月 2025 11:07:37 +0800 Subject: [PATCH] 支付版本更新 根据资金流向使用V2或V3服务商版本支付 --- cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 125 ++++++++++++++++++----------------------- 1 files changed, 54 insertions(+), 71 deletions(-) diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java index b49bc3e..91d6eb5 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java +++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java @@ -469,16 +469,14 @@ String code = siteBooking.getOrderNo(); Integer id = siteBooking.getId(); Site byId = siteService.getById(siteBooking.getSiteId()); - // 是否分账 0否1是 - int isFenZhang= 1; - String merchantNumber = ""; - if (byId.getOperatorId()==null || byId.getOperatorId()==0){ + Store store = storeService.getById(byId.getStoreId()); + if (store.getOperatorId()==null || store.getOperatorId()==0){ // 平台 - ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地-"+isFenZhang, id.toString(), code, paymentPrice.toString(), + ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/weChatPaymentSiteCallback", "APP", ""); return weixinpay; }else{ - String smidVx= operatorUserService.getmerchantNumberByOperatorId(byId.getOperatorId()); + String smidVx= operatorUserService.getmerchantNumberByOperatorId(store.getOperatorId()); if (!StringUtils.hasLength(smidVx)){ return ResultUtil.error("运营商未配置微信商户号,获取支付失败!"); } @@ -521,71 +519,56 @@ } ResultUtil alipay = payMoneyUtil.alipay(smid1,"预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback"); System.out.println("预约场地----" + alipay.getCode()); -// if (alipay.getCode() == 200) { -// new Thread(new Runnable() { -// @Override -// public void run() { -// try { -// int num = 1; -// int wait = 0; -// while (num <= 10) { -// int min = 5000; -// wait += (min * num); -// Thread.sleep(wait); -// SiteBooking siteBooking = siteBookingService.getById(id); -// if (siteBooking.getStatus() != 0) { -// break; -// } -// AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); -// if (resultUtil.getCode().equals("10000") && siteBooking.getStatus() == 0) { -// /** -// * WAIT_BUYER_PAY(交易创建,等待买家付款)、 -// * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 -// * TRADE_SUCCESS(交易支付成功)、 -// * TRADE_FINISHED(交易结束,不可退款) -// */ -//// Map<String, String> data1 = resultUtil.getData(); -//// String s = data1.get("tradeStatus"); -// String tradeNo = resultUtil.getTradeNo(); -// String s = resultUtil.getTradeStatus(); -// System.out.println("ssssss" + s); -// if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { -// break; -// } -// if ("TRADE_SUCCESS".equals(s)) { -// siteBooking.setPayTime(new Date()); -// siteBooking.setStatus(1); -// siteBooking.setPayOrderNo(tradeNo); -// siteBookingService.updateById(siteBooking); -// System.err.println("======完成支付"); -// // 判断预约的门店 属于哪个运营商 -// Integer storeId = siteBooking.getStoreId(); -// Store byId = storeService.getById(storeId); -// Integer operatorId = byId.getOperatorId(); -// String smid1 = ""; -// if (operatorId == null || operatorId == 0){ -// // 平台的门店 不冻结资金不做分账处理 -// payMoneyUtil.confirm1(smid1,code,tradeNo,paymentPrice.toString()); -// }else{ -// smid1 = siteService.getSMIDByOperatorId(operatorId); -// payMoneyUtil.confirm(smid1,code,tradeNo,paymentPrice.toString()); -// // 分账 -// extracted(operatorId, new BigDecimal(paymentPrice.toString()), tradeNo); -// } -// -// break; -// } -// if ("WAIT_BUYER_PAY".equals(s)) { -// num++; -// } -// } -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// }).start(); -// } + if (alipay.getCode() == 200) { + new Thread(new Runnable() { + @Override + public void run() { + try { + int num = 1; + int wait = 0; + while (num <= 10) { + int min = 5000; + wait += (min * num); + Thread.sleep(wait); + SiteBooking siteBooking = siteBookingService.getById(id); + if (siteBooking.getStatus() != 0) { + break; + } + AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); + if (resultUtil.getCode().equals("10000") && siteBooking.getStatus() == 0) { + /** + * WAIT_BUYER_PAY(交易创建,等待买家付款)、 + * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 + * TRADE_SUCCESS(交易支付成功)、 + * TRADE_FINISHED(交易结束,不可退款) + */ +// Map<String, String> data1 = resultUtil.getData(); +// String s = data1.get("tradeStatus"); + String tradeNo = resultUtil.getTradeNo(); + String s = resultUtil.getTradeStatus(); + System.out.println("ssssss" + s); + if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { + break; + } + if ("TRADE_SUCCESS".equals(s)) { + siteBooking.setPayTime(new Date()); + siteBooking.setStatus(1); + siteBooking.setPayOrderNo(tradeNo); + siteBookingService.updateById(siteBooking); + System.err.println("======完成支付"); + break; + } + if ("WAIT_BUYER_PAY".equals(s)) { + num++; + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + } return alipay; } -- Gitblit v1.7.1