From 168d852672f8f671a01d6f0f053349d0d321ec7c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 03 一月 2024 11:43:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java |   68 +++++++++++++++++++++++++++++++++-
 1 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
index e85dd04..3c5e8eb 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
@@ -6,7 +6,7 @@
 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.*;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import com.dsh.competition.util.httpClinet.HttpClientUtil;
@@ -71,7 +71,7 @@
     /**
      * 支付宝支付
      */
-    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
+    public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
 //        //构造client
 //        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
 //        //设置网关地址
@@ -137,8 +137,24 @@
         model.setTotalAmount(amount);//付款金额
         model.setProductCode("QUICK_MSECURITY_PAY");
         model.setPassbackParams(passbackParams);//自定义参数
+        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);
+
         try {
             //这里和普通的接口调用不同,使用的是sdkExecute
             AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
@@ -273,6 +289,54 @@
         }
     }
 
+    /**
+     * 统一确认结算接口
+     * @param smid
+     * @param code
+     * @param outTradeNo
+     * @param amount
+     * @return
+     */
+    public ResultUtil confirm(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;
+        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("出现问题啦");
+        }
+    }
 
     /**
      * 微信统一下单

--
Gitblit v1.7.1