From b9ee8fe325fa9746b284d3487df96d93d84d6473 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期三, 12 五月 2021 18:05:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test
---
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java | 39 ++++++++++++++++++++++-----------------
1 files changed, 22 insertions(+), 17 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 ed15b2b..6200822 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,56 +1,61 @@
package com.panzhihua.common.utlis;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.constants.PayCpmstant;
+import lombok.extern.slf4j.Slf4j;
+import org.json.XML;
import java.math.BigDecimal;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
+@Slf4j
public class WxPayUtils {
- public static String getUnifiedorder(String body, String openid, String outTradeNo, BigDecimal money) throws Exception{
+ public static String getUnifiedorder(String appid, String mchId, String payKey, String notifyUrl, String body, String openid, String outTradeNo, BigDecimal money){
String nonceStr = PayUtil.makeUUID(32);
SortedMap<Object, Object> params = new TreeMap<>();
- params.put("appid", "wx0cef797390444b75");
+ params.put("appid", appid);
params.put("body", body);
- params.put("mch_id", "1608439275");
+ params.put("mch_id", mchId);
params.put("nonce_str",nonceStr);
- params.put("notify_url", "http://387405oo37.zicp.vip/api/applets/wx/notify");
+ 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("total_fee", PayUtil.moneyToIntegerStr(money));//费用的参数转型
params.put("trade_type", "JSAPI");//对接类型
- params.put("sign", PayUtil.createSign("UTF-8", params, "01A9CB2234D7CBD0AC61B75EB1263805"));//MD5签名
+ params.put("sign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, params, payKey));//MD5签名
//转换成xml
String xmlData = PayUtil.getRequestXml(params);
//请求微信后台,获取支付id
String resXml = HttpClientUtil.httpsRequest(PayCpmstant.UNIFIEDORDER_URL, xmlData);
- System.out.println(resXml);
+ log.info("请求微信支付返回参数:" + resXml);
- JSONObject data = XMLUtils.xml2Json(resXml);
+ org.json.JSONObject resultData = XML.toJSONObject(resXml);
+ JSONObject data = JSON.parseObject(resultData.get("xml").toString());
JSONObject result = new JSONObject();
- if(data.get("return_msg").equals("OK")){
+ if(data.get("return_msg").equals(PayCpmstant.RETURN_MSG) && data.get("return_code").equals(PayCpmstant.RETURN_CODE)){
//将微信统一下单成功的参数拼接再签名
//统一下单返回prepay_id
- String prepay_id = "prepay_id=" + data.getString("prepay_id");
+ String prepayId = "prepay_id=" + data.getString("prepay_id");
//时间戳
Long timeStamp = System.currentTimeMillis()/1000;
//封装需要签名的字段
SortedMap<Object, Object> payParams = new TreeMap<>();
- params.put("appid", "wx0cef797390444b75");
- params.put("nonce_str",nonceStr);
- params.put("package",nonceStr);
- params.put("signType",nonceStr);
- params.put("timeStamp",nonceStr);
+ payParams.put("appId", appid);
+ payParams.put("nonceStr",nonceStr);
+ payParams.put("package",prepayId);
+ payParams.put("signType",PayCpmstant.SIGN_TYPE);
+ payParams.put("timeStamp",timeStamp);
//将参数以及签名计算完成封装返回给前端
result.put("timeStamp",timeStamp);
result.put("nonceStr",nonceStr);
- result.put("package",prepay_id);
- result.put("signType","MD5");
- result.put("paySign",PayUtil.createSign("UTF-8", payParams, "01A9CB2234D7CBD0AC61B75EB1263805"));
+ result.put("package",prepayId);
+ result.put("signType",PayCpmstant.SIGN_TYPE);
+ result.put("paySign",PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, payParams, payKey));
}
return result.toJSONString();
}
--
Gitblit v1.7.1