From c8d237747918de7618c9bbd3ad21f782cee168ab Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期四, 06 一月 2022 16:32:00 +0800 Subject: [PATCH] 商业街代码提交 --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 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 fcb26e1..26e450e 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 @@ -76,5 +76,60 @@ parameters.put("paySign", sign); 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 nonceStr = PayUtil.makeUUID(32); + SortedMap<Object, Object> params = new TreeMap<>(); + params.put("appid", appid); + params.put("body", body); + params.put("mch_id", mchId); + params.put("nonce_str", nonceStr); + 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", tradeType);// 对接类型 + 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); + log.info("请求微信支付返回参数:" + 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(PayCpmstant.RETURN_MSG) + && data.get("return_code").equals(PayCpmstant.RETURN_CODE)) { + // 将微信统一下单成功的参数拼接再签名 + // 统一下单返回prepay_id + if(tradeType.equals("JSAPI")) { + String prepayId = "prepay_id=" + data.getString("prepay_id"); + // 时间戳 + Long timeStamp = System.currentTimeMillis() / 1000; + // 封装需要签名的字段 + SortedMap<Object, Object> payParams = new TreeMap<>(); + 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", 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")); + } + } + + + + return result.toJSONString(); + } } -- Gitblit v1.7.1