From eb6b6dbb35a9f029e0b7d269773685c19fd40976 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 11 七月 2024 10:47:51 +0800
Subject: [PATCH] 玩湃微信商户认证代码

---
 cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java |   68 +++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 5 deletions(-)

diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
index f436220..9974105 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
@@ -6,10 +6,9 @@
 import com.alipay.api.AlipayClient;
 import com.alipay.api.CertAlipayRequest;
 import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.domain.AlipayTradeAppPayModel;
-import com.alipay.api.domain.ExtendParams;
-import com.alipay.api.domain.RoyaltyDetailInfos;
-import com.alipay.api.domain.RoyaltyInfo;
+import com.alipay.api.domain.*;
+import com.alipay.api.msg.AlipayMsgClient;
+import com.alipay.api.msg.MsgHandler;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import lombok.Synchronized;
@@ -71,7 +70,11 @@
 
     private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
 
+
+
+
     public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
+
         AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
                 aliAppid,
                 appPrivateKey,
@@ -95,6 +98,47 @@
                 "  }," +
                 "  \"extend_params\":{" +
                 "    \"royalty_freeze\":\"true\"" +
+                "  }" +
+                "}");
+        AlipayTradeSettleConfirmResponse response = null;
+        try {
+            response = alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+            return ResultUtil.success();
+        } else {
+            System.out.println("调用失败");
+            return ResultUtil.error("出现问题啦");
+        }
+    }
+    // 属于平台的运营商 因为无需分账不冻结资金
+    public ResultUtil confirm1(String smid,String code, String outTradeNo, String amount) {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                aliAppid,
+                appPrivateKey,
+                "json",
+                "GBK",
+                alipay_public_key,
+                "RSA2");
+        AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest();
+        request.setBizContent("{" +
+                "  \"out_request_no\":\""+code+"\"," +
+                "  \"trade_no\":\""+outTradeNo+"\"," +
+                "  \"settle_info\":{" +
+                "    \"settle_detail_infos\":[" +
+                "      {" +
+                "        \"trans_in_type\":\"defaultSettle\"," +
+                "        \"settle_entity_id\":\""+smid+"\"," +
+                "        \"settle_entity_type\":\"SecondMerchant\"," +
+                "        \"amount\":"+amount+"," +
+                "      }" +
+                "    ]" +
+                "  }," +
+                "  \"extend_params\":{" +
+                "    \"royalty_freeze\":\"false\"" +
                 "  }" +
                 "}");
         AlipayTradeSettleConfirmResponse response = null;
@@ -180,7 +224,21 @@
         model.setTotalAmount(amount);//付款金额
         model.setProductCode("QUICK_MSECURITY_PAY");
         model.setPassbackParams(passbackParams);//自定义参数
-        model.setSellerId(smid);
+        SettleInfo settleInfo = new SettleInfo();
+        settleInfo.setSettlePeriodTime("3d");
+        SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+        settleDetailInfo.setTransInType("defaultSettle");
+        settleDetailInfo.setAmount(amount);
+        List<SettleDetailInfo> settleDetailInfos = new ArrayList<>();
+        settleDetailInfos.add(settleDetailInfo);
+        settleInfo.setSettleDetailInfos(settleDetailInfos);
+        model.setSettleInfo(settleInfo);
+        SubMerchant subMerchant = new SubMerchant();
+        subMerchant.setMerchantId(smid);
+        model.setSubMerchant(subMerchant);
+        ExtendParams extendParams = new ExtendParams();
+        extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理
+        model.setExtendParams(extendParams);
         request.setBizModel(model);
         request.setNotifyUrl(callbackPath + notifyUrl);
 

--
Gitblit v1.7.1