From 86df207c37502cce1b2043e1c7c0486459eef1d6 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 13 三月 2025 19:58:45 +0800 Subject: [PATCH] 党员、诉求评论基础代码 --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java | 40 +++++++++++++++++++++++++++++++++------- 1 files changed, 33 insertions(+), 7 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java index 26e450e..9cade45 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java @@ -1,10 +1,12 @@ package com.panzhihua.common.utlis; import java.math.BigDecimal; +import java.util.LinkedHashMap; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; +import com.panzhihua.common.utlis.wx.WXPayUtil; import org.json.XML; import com.alibaba.fastjson.JSON; @@ -17,7 +19,7 @@ public class WxPayUtils { public static String getUnifiedorder(String appid, String mchId, String payKey, String notifyUrl, String body, - String openid, String outTradeNo, BigDecimal money) { + String openid, String outTradeNo, BigDecimal money,String attach) { String nonceStr = PayUtil.makeUUID(32); SortedMap<Object, Object> params = new TreeMap<>(); params.put("appid", appid); @@ -26,6 +28,10 @@ params.put("nonce_str", nonceStr); params.put("notify_url", notifyUrl); params.put("openid", openid); + //附加数据 + if(StringUtils.isNotEmpty(attach)){ + params.put("attach", attach); + } params.put("out_trade_no", outTradeNo);// 商品订单号 params.put("spbill_create_ip", PayUtil.getLocalIp());// 服务部署的ip params.put("total_fee", PayUtil.moneyToIntegerStr(money));// 费用的参数转型 @@ -77,7 +83,7 @@ return parameters; } public static String h5pay(String appid, String mchId, String payKey, String notifyUrl, String body, - String openid, String outTradeNo, BigDecimal money, String tradeType) { + String openid, String outTradeNo, BigDecimal money, String tradeType, String clientIp) { String nonceStr = PayUtil.makeUUID(32); SortedMap<Object, Object> params = new TreeMap<>(); params.put("appid", appid); @@ -87,7 +93,7 @@ params.put("notify_url", notifyUrl); params.put("openid", openid); params.put("out_trade_no", outTradeNo);// 商品订单号 - params.put("spbill_create_ip", PayUtil.getLocalIp());// 服务部署的ip + params.put("spbill_create_ip", clientIp);// 用户真实ip params.put("total_fee", PayUtil.moneyToIntegerStr(money));// 费用的参数转型 params.put("trade_type", tradeType);// 对接类型 params.put("sign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, params, payKey));// MD5签名 @@ -122,14 +128,34 @@ result.put("package", prepayId); result.put("signType", PayCpmstant.SIGN_TYPE); result.put("paySign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, payParams, payKey)); - } - else if(tradeType.equals("NATIVE")){ - result.put("codeUrl",data.getString("code_url")); - } } + else if(tradeType.equals("NATIVE")) { + result.put("codeUrl",data.getString("code_url")); + } else if(tradeType.equals("MWEB")) { + result.put("mWebUrl",data.getString("mweb_url")); + } + } return result.toJSONString(); } + + public static String refund(String appid,String mchId,String orderNo,BigDecimal totalFee,BigDecimal refundFee,String refundNo,Boolean isTest) throws Exception { + //创建请求地址 + String url = PayCpmstant.REFUND_URL; + Map<String, String> paramMap = new LinkedHashMap<>(); + paramMap.put("appid",appid); + paramMap.put("mch_id",mchId); + paramMap.put("nonce_str", WXPayUtil.generateNonceStr()); + paramMap.put("out_refund_no",refundNo); + paramMap.put("out_trade_no",orderNo); + paramMap.put("refund_fee",String.valueOf(refundFee.multiply(BigDecimal.valueOf(100)).longValue())); + paramMap.put("total_fee",String.valueOf(totalFee.multiply(BigDecimal.valueOf(100)).longValue())); + paramMap.put("sign",WXPayUtil.generateSignature(paramMap,PayCpmstant.REFUND_KEY)); + log.info("微信退款请求参数:{},{},{},{}",url,WXPayUtil.mapToXml(paramMap),mchId,isTest); + //接收请求返回值 + return HttpClientUtil.doRefund(url,WXPayUtil.mapToXml(paramMap),mchId,isTest); + + } } -- Gitblit v1.7.1