From be8fdcb9d380f555981d17b851cd55f630d41aba Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期一, 16 十月 2023 18:00:21 +0800
Subject: [PATCH] 10.16
---
cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java | 208 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 193 insertions(+), 15 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 8821c90..65f604e 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 {
@@ -343,6 +403,10 @@
if("SUCCESS".equals(result_code)){
String type = map1.get("trade_type");
String prepay_id = map1.get("prepay_id");
+
+
+
+
switch (type){
case "JSAPI":
//重新进行签名后返回给前端
@@ -389,7 +453,8 @@
}
-
+ @Resource
+ private RechargeRecordsMapper rereMapper;
/**
@@ -414,6 +479,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 +493,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;
+//
+//
+//
+//
+// }
/**
* 微信扫码收款
@@ -1110,18 +1288,18 @@
}
- public static void main(String[] ages){
- PayMoneyUtil payMoneyUtil = new PayMoneyUtil();
- ResultUtil ce = payMoneyUtil.alipay("测试", "测试", "", "121456457", "10", "http://123.com");
- System.err.println(ce);
- ResultUtil resultUtil = null;
- try {
- resultUtil = payMoneyUtil.queryALIOrder("121456457");
- } catch (Exception e) {
- e.printStackTrace();
- }
- System.err.println(resultUtil);
- }
+// public static void main(String[] ages){
+// PayMoneyUtil payMoneyUtil = new PayMoneyUtil();
+// ResultUtil ce = payMoneyUtil.alipay("测试", "测试", "", "121456457", "10", "http://123.com");
+// System.err.println(ce);
+// ResultUtil resultUtil = null;
+// try {
+// resultUtil = payMoneyUtil.queryALIOrder("121456457");
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// System.err.println(resultUtil);
+// }
/**
--
Gitblit v1.7.1