From 232d3efb20f87f9c60faeda7bae4bc96e5687bd3 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 11 十月 2023 19:19:47 +0800
Subject: [PATCH] 10.12

---
 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java |  180 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 177 insertions(+), 3 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
index 1fdf41e..f65d53e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -1,26 +1,43 @@
 package com.dsh.account.util;
 
+import cn.hutool.core.util.RandomUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
 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.AlipayTradeQueryModel;
+import com.alipay.api.domain.*;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
+import com.dsh.account.dto.Receivers;
+import com.dsh.account.entity.OperatorUser;
+import com.dsh.account.feignclient.competition.DeductionCompetitionsClient;
+import com.dsh.account.feignclient.competition.model.PaymentCompetition;
+import com.dsh.account.feignclient.course.CoursePackageClient;
+import com.dsh.account.feignclient.course.model.TCoursePackagePayment;
+import com.dsh.account.feignclient.other.SiteClient;
+import com.dsh.account.feignclient.other.model.SiteBooking;
+import com.dsh.account.mapper.RechargeRecordsMapper;
 import com.dsh.account.util.httpClinet.HttpClientUtil;
+//import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver;
+//import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingRequest;
+//import com.github.binarywang.wxpay.service.ProfitSharingV3Service;
+//import com.github.binarywang.wxpay.service.WxPayService;
+
 import org.apache.commons.collections.map.HashedMap;
+import org.apache.http.client.methods.CloseableHttpResponse;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.dom4j.Document;
 import org.dom4j.DocumentException;
 import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
@@ -140,6 +157,49 @@
         model.setTotalAmount(amount);//付款金额
         model.setProductCode("QUICK_MSECURITY_PAY");
         model.setPassbackParams(passbackParams);//自定义参数
+
+
+        //分账
+        Integer    coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
+        Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
+        Integer siteBookings = siteClient.queryByCode(outTradeNo);
+        List<Integer> stores = new ArrayList<>();
+        stores.add(coursePackagePayments);
+        stores.add(paymentCompetitions);
+        stores.add(siteBookings);
+
+        OperatorUser operatorUser = siteClient.queryOperator(stores);
+
+        String alipayProportion = operatorUser.getAlipayProportion();
+        String alipayNum = operatorUser.getAlipayNum();
+
+        ExtendParams extendParams = new ExtendParams();
+//        extendParams.setSysServiceProviderId("YOUR_SERVICE_PROVIDER_ID");
+        model.setExtendParams(extendParams);
+
+        RoyaltyInfo royaltyInfo = new RoyaltyInfo();
+//        royaltyInfo.setRoyaltyType("transfer");
+
+
+        RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos();
+        royaltyDetailInfo1.setTransOutType("userId");
+        royaltyDetailInfo1.setTransOut(aliAppid);
+        royaltyDetailInfo1.setTransInType("loginName");
+        royaltyDetailInfo1.setTransIn("18398968484");
+
+        royaltyDetailInfo1.setDesc("分账描述1");
+        royaltyDetailInfo1.setAmountPercentage(alipayProportion);
+        List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>();
+
+
+
+
+        royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos);
+        model.setRoyaltyInfo(royaltyInfo);
+        System.err.println("=================="+royaltyInfo);
+
+
+        //
         request.setBizModel(model);
         request.setNotifyUrl(callbackPath + notifyUrl);
         try {
@@ -389,7 +449,8 @@
     }
 
 
-
+    @Resource
+    private RechargeRecordsMapper rereMapper;
 
 
     /**
@@ -414,6 +475,9 @@
                     map1.put("transaction_id", map.get("transaction_id"));//微信支付订单号
                     String result = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
                     map1.put("result", result);
+
+
+
                     return map1;
                 }else{
                     System.err.println(map.get("err_code_des"));
@@ -425,10 +489,120 @@
             e.printStackTrace();
         } catch (DocumentException e) {
             e.printStackTrace();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
         return null;
     }
 
+@Resource
+private CoursePackageClient coursePackageClient;
+    @Resource
+    private DeductionCompetitionsClient competitionsClient;
+
+    @Resource
+    private SiteClient siteClient;
+//    @Autowired
+//    private WxPayService wxPayService;
+    //分账
+//    public ResultUtil order(String code) throws Exception {
+//
+//
+//
+//                  Integer    coursePackagePayments = coursePackageClient.queryByCode(code);
+//                  Integer paymentCompetitions = competitionsClient.queryByCode(code);
+//                  Integer siteBookings = siteClient.queryByCode(code);
+//        List<Integer> stores = new ArrayList<>();
+//                stores.add(coursePackagePayments);
+//                stores.add(paymentCompetitions);
+//                stores.add(siteBookings);
+//
+//                OperatorUser operatorUser = siteClient.queryOperator(stores);
+//
+//
+////        WxPayService myWxPayService = wxPayService.switchoverTo("mch_id");
+////
+////        ProfitSharingV3Service profitSharingV3Service = myWxPayService.getProfitSharingV3Service();
+//
+//        String nonceStr = RandomUtil.randomString(32);
+//        String appId = "您的appid";
+//
+//
+//        //添加分账方
+//
+////        ProfitSharingReceiver profitSharingReceiver = new ProfitSharingReceiver();
+////        profitSharingReceiver.setAccount("appid对应的openId");
+////        profitSharingReceiver.setAmount(1l);
+////        profitSharingReceiver.setAppid(appId);
+////        profitSharingReceiver.setType("PERSONAL_OPENID");
+////        profitSharingReceiver.setRelationType("PARTNER");
+////        profitSharingV3Service.addProfitSharingReceiver(profitSharingReceiver);
+//
+//        //分账
+//        ProfitSharingRequest profitSharingRequest = new ProfitSharingRequest();
+//        profitSharingRequest.setAppid(appId);
+//        profitSharingRequest.setTransactionId("微信支付订单号");
+//        profitSharingRequest.setOutOrderNo("业务系统唯一编号");
+//        //分账完成后,剩余金额自动解冻并返回给商户账号,默认false
+//        profitSharingRequest.setUnfreezeUnsplit(true);
+//        //待分账金额1元
+//        Long money = 1L;
+//        List<ProfitSharingReceiver> profitSharingReceivers = new ArrayList<>();
+//        ProfitSharingReceiver profitSharingReceiver = new ProfitSharingReceiver();
+//        profitSharingReceiver.setAccount("appid对应的openId,分账用户1");
+//
+//
+//        //分账百分之5
+//        profitSharingReceiver.setAmount(money * 100 / 5);
+//        profitSharingReceiver.setAppid(appId);
+//        profitSharingReceiver.setType("PERSONAL_OPENID");
+//        profitSharingReceiver.setRelationType("PARTNER");
+//        profitSharingReceiver.setDescription("test01");
+//        profitSharingReceivers.add(profitSharingReceiver);
+//
+//        ProfitSharingReceiver receiver = new ProfitSharingReceiver();
+//        receiver.setAccount("appid对应的openId,分账用户2");
+//        //百分之10
+//        receiver.setAmount(money * 100 / 10);
+//        receiver.setAppid(appId);
+//        receiver.setType("PERSONAL_OPENID");
+//        receiver.setRelationType("PARTNER");
+//        receiver.setDescription("test02");
+//        profitSharingReceivers.add(receiver);
+//
+//
+//        profitSharingRequest.setReceivers(profitSharingReceivers);
+//
+//        profitSharingV3Service.profitSharing(profitSharingRequest);
+//
+//
+//
+//
+////                    Map<String,String> headers = new HashMap<>();
+////                    headers.put("Authorization",map.get("sign"));
+////                    headers.put("Accept","application/json");
+////                    headers.put("Wechatpay-Serial",certPath);
+////
+////                    List<Receivers> receivers = new ArrayList<>();
+////
+////                    Map<String,Object> body = new HashMap<>();
+////                    body.put("appid",appid);
+////                    body.put("transaction_id",map.get("transaction_id"));
+////                    body.put("out_order_no",map.get("out_trade_no"));
+////                    body.put("receivers",receivers);
+////                    body.put("unfreeze_unsplit",true);
+//
+//                    //支付分账
+////                    String url ="https://api.mch.weixin.qq.com/v3/profitsharing/orders";
+////                    CloseableHttpResponse closeableHttpResponse = HttpClientUtil.setPostHttpRequset(url, body, headers, "application/json");
+////
+//
+//            return  null;
+//
+//
+//
+//
+//    }
 
     /**
      * 微信扫码收款

--
Gitblit v1.7.1