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