1
0

3 Revīzijas 937232991e ... d37e8e33d7

Autors SHA1 Ziņojums Datums
  lishiqiang d37e8e33d7 Merge branch 'main' of http://47.98.207.247:3000/lsq/ship-ota-server 1 nedēļu atpakaļ
  lishiqiang d7e8ea1ea5 Merge remote-tracking branch 'origin/main' 1 nedēļu atpakaļ
  lishiqiang c5d257888c 定金支付状态bug修改 1 nedēļu atpakaļ

+ 0 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -517,7 +517,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                         .set(TradeOrderDO::getConfirmDate, confireDate)
                         .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
                         .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
-                        .set(TradeOrderDO::getDeposiStatus, 1)
                         .eq(TradeOrderDO::getId, orderId);
                 if(amount.compareTo(BigDecimal.ZERO) != 0){
                     updateWrapper.set(TradeOrderDO::getPayAmount, newPayAmount);

+ 130 - 0
ship-server-web/src/test/java/com/yc/ship/RefundPayOrder.java

@@ -0,0 +1,130 @@
+package com.yc.ship;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.yc.ship.module.trade.framework.common.PayDigestUtil;
+import com.yc.ship.module.trade.framework.common.PayUtil;
+
+import java.net.URLEncoder;
+import java.util.Map;
+
+/**
+ * @author :李事樯
+ * @description:TODO
+ * @date :2026/7/1 16:15
+ **/
+public class RefundPayOrder {
+
+    static final String mchId = "10000004";
+    /**
+     * 加签key
+     */
+    static final String reqKey = "M86l522AV6q613Ii4W6u8K48uW8vM1N6bFgyv769220MdYe9u37N4y7rI5mQ";
+    /**
+     * 验签key
+     */
+    static final String repKey = "Hpcl522AV6q613KIi46u6g6XuW8vM1N8bFgyv769770MdYe9u37M4y7rIpl8";
+
+    static final String baseUrl = "http://booking.vista-cruises.com/pay/api";
+
+    static final String notifyUrl = "http://booking.vista-cruises.com/ship-app-api/trade/payNotify"; // 本地环境测试,可到ngrok.cc网站注册
+    public static void main(String[] args) {
+        payOrderTest();  // 支付下单
+//        refundOrderTest();  // 退款创建退单
+        //quryRefundOrderTest(); //查询退单
+    }
+
+    static void payOrderTest() {
+        JSONObject paramMap = new JSONObject();
+        paramMap.put("mchId", mchId);                               // 商户ID
+        paramMap.put("mchOrderNo", "ZSHL"+System.currentTimeMillis());     // 商户订单号
+        paramMap.put("channelId", "ABC_JL_C2B");
+        paramMap.put("amount", 1);                                  // 支付金额,单位分
+        paramMap.put("currency", "cny");                            // 币种, cny-人民币
+        paramMap.put("clientIp", "127.0.0.1");                 // 用户地址,微信H5支付时要真实的
+        paramMap.put("device", "WEB");                              // 设备
+        paramMap.put("subject", "测试票,请勿购买");
+        paramMap.put("body", "测试票,请勿购买");
+        paramMap.put("notifyUrl", notifyUrl);                       // 回调URL
+        paramMap.put("returnUrl", "http://172.16.121.237:8100/");                       // 回调URL
+        paramMap.put("param1", "");                                 // 扩展参数1  1 微信 2 支付宝
+        paramMap.put("param2", "");                                 // 扩展参数1  1 微信 2 支付宝
+        paramMap.put("expireTime", "1800");                                 // 扩展参数2
+//        paramMap.put("payCode", "132857771924518653");    //付款码  用户被扫必传
+        paramMap.put("msgType", "");
+//        //附加参数
+        paramMap.put("extra", "{\"deviceType\":\"11\",\"secretText\":\"\",\"appVersion\":\"\",\"serialNum\":\"\",\"productId\":\"558873250097004544\",\"openId\":\"otZpM10ls6fycQU3rlclCTHzw8NM\",\"latitude\":\"16.1\",\"longitude\":\"16.1\"}");
+        String reqSign = PayDigestUtil.getSign(paramMap, reqKey);
+        paramMap.put("sign", reqSign);
+        // 签名
+        String reqData = "params=" + paramMap.toJSONString();
+        System.out.println("请求支付中心下单接口,请求数据:" + reqData);
+        long s1 = System.currentTimeMillis();
+        String url = baseUrl + "/pay/create_order?";
+        String result = PayUtil.call4Post(url + reqData);
+        System.out.println("请求支付中心下单接口,响应数据:" + result);
+        System.out.println("执行:"+(System.currentTimeMillis()-s1));
+    }
+
+    static void refundOrderTest() {
+        JSONObject paramMap = new JSONObject();
+        paramMap.put("mchId", mchId);                               // 商户ID
+        paramMap.put("mchRefundNo", "REFUND" + System.currentTimeMillis());     // 商户订单号
+        paramMap.put("channelId", "ABC_JL_C2B");
+        paramMap.put("currency", "cny");                            // 币种, cny-人民币
+        paramMap.put("clientIp", "127.0.0.1");                 // 用户地址,微信H5支付时要真实的
+        paramMap.put("device", "WEB");                              // 设备
+        paramMap.put("subject", "退款");
+        paramMap.put("body", "退款");
+        paramMap.put("notifyUrl", notifyUrl);                       // 回调URL
+        paramMap.put("param1", "");                                 // 扩展参数1
+        paramMap.put("param2", "");
+        paramMap.put("param4", "退款");
+        paramMap.put("amount", 	1); //单位分
+        // 退款金额
+        paramMap.put("channelUser", "oZbAa6hwbFOAG8k_yByGq3UXlcgk");  // 微信openId
+        paramMap.put("payOrderId","PDDY0020260104123816XXXX");
+
+        String reqSign = PayDigestUtil.getSign(paramMap, reqKey);
+        System.out.println("加密参数:"+paramMap+";reqKey="+reqKey);
+        System.out.println("sign="+reqSign);
+        paramMap.put("sign", reqSign);                              // 签名
+        String reqDataencode = "params=" + URLEncoder.encode(paramMap.toJSONString());
+        String reqData = "params=" + paramMap.toJSONString();
+        System.out.println("请求支付中心退款接口,请求数据:" + reqData);
+        String url = baseUrl + "/refund/create_order?";
+        String result = PayUtil.call4Post(url + reqDataencode);
+        System.out.println("请求支付中心退款接口,响应数据:" + result);
+        Map retMap = JSON.parseObject(result);
+        if("SUCCESS".equals(retMap.get("retCode")) && "SUCCESS".equalsIgnoreCase(retMap.get("resCode").toString())) {
+            // 验签
+            System.out.println(retMap);
+            String checkSign = PayDigestUtil.getSign(retMap, repKey, "sign", "payParams");
+            String retSign = (String) retMap.get("sign");
+            if(checkSign.equals(retSign)) {
+                System.out.println("=========支付中心退款验签成功=========");
+            }else {
+                System.err.println("=========支付中心退款验签失败=========");
+            }
+        }
+    }
+
+    static void quryRefundOrderTest() {
+        JSONObject paramMap = new JSONObject();
+        paramMap.put("mchId", mchId);                               // 商户ID
+        paramMap.put("mchOrderNo", "8739585736883499008");                     // 商户订单号
+        paramMap.put("refundOrderId", "RDY002026050418170608");                     // 支付订单号
+        paramMap.put("executeNotify", "false");                      // 是否执行回调,true或false,如果为true当订单状态为支付成功(2)时,支付中心会再次回调一次业务系统
+        paramMap.put("channelId", "ABC_JL_C2B");                      // 是否执行回调,true或false,如果为true当订单状态为支付成功(2)时,支付中心会再次回调一次业务系统
+        paramMap.put("param1", "");                      // 是否执行回调,true或false,如果为true当订单状态为支付成功(2)时,支付中心会再次回调一次业务系统
+
+        String reqSign = PayDigestUtil.getSign(paramMap, reqKey);
+        paramMap.put("sign", reqSign);                              // 签名
+        String reqData = "params=" + paramMap.toJSONString();
+        String url = baseUrl + "/query/refund?";
+        String result = PayUtil.call4Post(url + reqData);
+        System.out.println("请求支付中心退单查询接口,响应数据:" + result);
+
+    }
+
+}