UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -1702,7 +1702,48 @@ e.printStackTrace(); } } /** * 取消订单微信回调 * * @param request */ @ResponseBody @PostMapping("/base/cbyzxCancelOrderTaxi") public void cbyzxCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response) { try { Map<String, String> map = payMoneyUtil.weixinpayCallback(request); if (null != map) { String order_id = map.get("transaction_id"); String out_trade_no = map.get("out_trade_no"); String result = map.get("result"); if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { PrintWriter out = response.getWriter(); out.write(result); out.flush(); out.close(); String[] split = out_trade_no.split("_"); Integer id = Integer.valueOf(split[0]); Integer type = Integer.valueOf(split[1]); switch (type) { case 1: orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1); break; case 2: orderTaxiService.payCancelOrderTaxi(id, order_id, 1); break; case 3: orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); break; } } // cloudPay(map.get("total_fee"),map.get("transaction_id"),1); } } catch (Exception e) { e.printStackTrace(); } } /** * 取消订单支付宝回调 @@ -1809,9 +1850,9 @@ */ @ResponseBody @PostMapping("/base/cbyzxPayOrderTaxi") public Map<String, Object> cbyzxPayOrderTaxi(HttpServletRequest request) { public Map<String, Object> cbyzxPayOrderTaxi(@RequestBody String params, HttpServletRequest request) { try { JSONObject payload = cbyzxOrderPayHelper.parseCallbackRequest(request); JSONObject payload = JSONObject.parseObject(params); log.info("创博优完成订单支付回调,notify_type={}, out_trade_no={}, trade_no={}, trade_status={}", cbyzxOrderPayHelper.extractNotifyType(payload), cbyzxOrderPayHelper.extractOutRequestNo(payload), UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/CbyzxPayUtil.java
@@ -1,7 +1,9 @@ package com.stylefeng.guns.modular.system.util; import cn.hutool.Hutool; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; import java.math.BigDecimal; @@ -12,6 +14,7 @@ * 创博优支付工具类 * 目前仅实现创建支付单接口。 */ @Slf4j public class CbyzxPayUtil { /** @@ -23,7 +26,7 @@ * 创建支付单接口 */ public static final String CREATE_PAY_ORDER_PATH = "/api/inner/pay/create"; public static final String CLOSE_PAY_ORDER_PATH = "/api/inner/pay/close"; public static final String CLOSE_PAY_ORDER_PATH = "/api/inner/refund/create"; private static final String PAYMENT_ORDER_TYPE = "PAYMENT_ORDER"; private static final String DEFAULT_CURRENCY = "CNY"; @@ -73,6 +76,7 @@ private static JSONObject postForJson(String baseUrl, String path, Map<String, Object> params, String actionName) { HttpClientUtil httpClientUtil = new HttpClientUtil(); log.info("{} request: {}", actionName, JSONObject.toJSONString(params)); String responseText = httpClientUtil.pushHttpRequset( "POST", buildUrl(baseUrl, path), @@ -142,9 +146,6 @@ if (request == null) { throw new IllegalArgumentException("request must not be null"); } if (!StringUtils.hasText(request.getTenant())) { throw new IllegalArgumentException("tenant must not be blank"); } if (!StringUtils.hasText(request.getOutRequestNo())) { throw new IllegalArgumentException("outRequestNo must not be blank"); } @@ -166,7 +167,6 @@ public static ClosePayOrderRequest mockCloseRequest(String outRequestNo) { ClosePayOrderRequest request = new ClosePayOrderRequest(); request.setTenant(DEFAULT_TENANT); request.setOutRequestNo(outRequestNo); return request; } @@ -203,10 +203,12 @@ params.put("tenant", DEFAULT_TENANT); params.put("paymentOrderType", PAYMENT_ORDER_TYPE); params.put("outRequestNo", outRequestNo); //转为分 paymentOrderAmount = BigDecimal.valueOf(paymentOrderAmount.multiply(new BigDecimal(100)).intValue()); params.put("paymentOrderAmount", paymentOrderAmount); params.put("currency", DEFAULT_CURRENCY); params.put("buyerId", buyerId); params.put("openId", openId); params.put("subOpenid", openId); params.put("storeIds", Arrays.asList("246")); params.put("payChannelCode", DEFAULT_PAY_CHANNEL_CODE); params.put("payEndTime", payEndTime); @@ -269,24 +271,46 @@ public static class ClosePayOrderRequest { private String tenant; private String outRequestNo; private String refundOutRequestNo; private Integer refundAmount; private String refundDesc; public Map<String, Object> toParamMap() { Map<String, Object> params = new LinkedHashMap<>(); params.put("tenant", tenant); params.put("tenant",DEFAULT_TENANT ); params.put("outRequestNo", outRequestNo); params.put("refundOutRequestNo", refundOutRequestNo); params.put("refundAmount", refundAmount); params.put("refundDesc", refundDesc); return params; } public String getTenant() { return tenant; public String getRefundOutRequestNo() { return refundOutRequestNo; } public void setTenant(String tenant) { this.tenant = tenant; public void setRefundOutRequestNo(String refundOutRequestNo) { this.refundOutRequestNo = refundOutRequestNo; } public Integer getRefundAmount() { return refundAmount; } public void setRefundAmount(Integer refundAmount) { this.refundAmount = refundAmount; } public String getRefundDesc() { return refundDesc; } public void setRefundDesc(String refundDesc) { this.refundDesc = refundDesc; } public String getOutRequestNo() { return outRequestNo; } UserYKDTravel/guns-admin/src/main/resources/application-dev.yml
@@ -79,8 +79,8 @@ grantType: authorization_code #填authorization_code appid: 111 #应用唯一标识,在微信开放平台提交应用审核通过后获得 appSecret: 111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 appletsAppid: wx436cde5de45e1ed1 #小程序APPid appletsAppSecret: e94f587cfb5c325c13d72b1f5ddbb1e6 # appletsAppid: wx20301e30167d920e #小程序APPid appletsAppSecret: 4b8fe5cea20c4309fa996caa06ac9b4c # mchId: 111 #微信支付分配的商户号 key: 111 #key为商户平台设置的密钥key: @@ -104,7 +104,8 @@ #支付回调地址 #正式环境 callbackPath: https://traffic.qytzt.cn/user #callbackPath: https://traffic.qytzt.cn/user callbackPath: http://221.182.45.100:7894/user --- UserYKDTravel/guns-admin/src/main/resources/application-prod.yml
@@ -85,8 +85,8 @@ grantType: authorization_code #填authorization_code appid: 111 #应用唯一标识,在微信开放平台提交应用审核通过后获得 appSecret: 111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 appletsAppid: wx436cde5de45e1ed1 #小程序APPid appletsAppSecret: e94f587cfb5c325c13d72b1f5ddbb1e6 # appletsAppid: wx20301e30167d920e #小程序APPid appletsAppSecret: 4b8fe5cea20c4309fa996caa06ac9b4c # mchId: 111 #微信支付分配的商户号 key: 111 #key为商户平台设置的密钥key: UserYKDTravel/guns-admin/src/main/resources/application-test.yml
@@ -49,7 +49,7 @@ eureka: client: service-url: #注册中心地址 defaultZone: http://sinata:sinata@127.0.0.1:8000/eureka #启用身份验证的方式连接 defaultZone: http://sinata:sinata@127.0.0.1:8001/eureka #启用身份验证的方式连接 register-with-eureka: true #在注册中心进行注册 fetch-registry: true #从Eureka中获取注册信息。 @@ -62,11 +62,12 @@ spring: datasource: url: jdbc:mysql://10.86.17.201:5740/hn_ridingdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai username: hn_ridingdb password: hn_ridingdb123456$#@! db-name: hn_ridingdb #用来搜集数据库的所有表 url: jdbc:mysql://192.168.110.47:3306/hn_ridingdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai username: root password: 123456 db-name: qyttravel #用来搜集数据库的所有表 filters: wall,mergeStat @@ -74,12 +75,7 @@ spring: data: mongodb: host: 10.88.204.206 port: 27009 username: qn_riding_adm password: QN_riding@Prom2025 database: qn_ridingdb uri: mongodb://192.168.110.80:27017/traveling_track ---