From 4e124926ee6ee682084466067ae37550fca475fa Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 05 八月 2025 11:39:48 +0800 Subject: [PATCH] 代码提交 世界杯修改支付宝资金结算功能 --- cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java | 46 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 39 insertions(+), 7 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 1937266..fa7103f 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 @@ -8,10 +8,7 @@ import com.alipay.api.request.*; import com.alipay.api.response.*; import com.dsh.competition.util.httpClinet.HttpClientUtil; -import com.dsh.competition.util.wx.PartnerAppPrepay; -import com.dsh.competition.util.wx.WXPayUtility; -import com.dsh.competition.util.wx.WeChatV3SignUtil; -import com.dsh.competition.util.wx.WxV3PayConfig; +import com.dsh.competition.util.wx.*; import org.apache.commons.collections.map.HashedMap; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.dom4j.Document; @@ -99,11 +96,10 @@ SubMerchant subMerchant = new SubMerchant(); subMerchant.setMerchantId(smid); model.setSubMerchant(subMerchant); - if (!smid.equals("2088330203191220")){ ExtendParams extendParams = new ExtendParams(); - extendParams.setRoyaltyFreeze("true"); + extendParams.setRoyaltyFreeze("false"); model.setExtendParams(extendParams); - } + request.setBizModel(model); request.setNotifyUrl(callbackPath + notifyUrl); @@ -280,6 +276,9 @@ settleDetailInfos0.setTransInType("defaultSettle"); settleDetailInfos.add(settleDetailInfos0); settleInfo.setSettleDetailInfos(settleDetailInfos); + SettleConfirmExtendParams settleConfirmExtendParams = new SettleConfirmExtendParams(); + settleConfirmExtendParams.setRoyaltyFreeze("false"); + model.setExtendParams(settleConfirmExtendParams); model.setSettleInfo(settleInfo); request.setBizModel(model); System.err.println("结算金额"+amount); @@ -846,6 +845,39 @@ return map2; } } + public ResultUtil weixinRefundV3(String subMchid,String outRefundNo, String transactionId, String totalFee, String notifyUrl) throws Exception { + BigDecimal bigDecimal = new BigDecimal(totalFee); + int i = bigDecimal.multiply(new BigDecimal("100")).intValue(); + // TODO: 请准备商户开发必要参数,参考:https://pay.weixin.qq.com/doc/v3/partner/4013080340 + Create client = new Create( + "1681873607", // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/merchant/4013070756 + "55714944F7A7E52526F708280B176DCC838F371A", // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053 + "/usr/playpai/server/wxV3/1681873607_20250424_cert/apiclient_key.pem", // 商户API证书私钥文件路径,本地文件路径 + "PUB_KEY_ID_0116818736072025042400351694002605", // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816 + "/usr/playpai/server/wxV3/pub_key.pem" // 微信支付公钥文件路径,本地文件路径 + ); + + Create.CreateRequest request = new Create.CreateRequest(); + request.subMchid = subMchid; + request.transactionId = transactionId; + request.outRefundNo = outRefundNo; + request.reason = "退款"; + request.notifyUrl = callbackPath+notifyUrl; + request.amount = new Create.AmountReq(); + request.amount.refund = (long) i; + request.amount.total = (long) i; + request.amount.currency = "CNY"; + try { + Create.Refund response = client.run(request); + + // TODO: 请求成功,继续业务逻辑 + System.out.println(response); + } catch (WXPayUtility.ApiException e) { + // TODO: 请求失败,根据状态码执行不同的逻辑 + e.printStackTrace(); + } + return ResultUtil.success(); + } /** * 发起分账回退 * @param order 微信订单号 -- Gitblit v1.7.1