日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JAVA+微信JSAPI支付

發布時間:2023/12/31 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA+微信JSAPI支付 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA+微信JSAPI支付

    • 引入依賴
    • 獲取請求ip
    • 組裝微信支付請求
    • 回調處理

引入依賴

<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>${weixin-java-pay.version}</version></dependency>

獲取請求ip

public static String getIpAddr(HttpServletRequest request){if (request == null){return "unknown";}String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ip = request.getHeader("X-Forwarded-For");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ip = request.getHeader("X-Real-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ip = request.getRemoteAddr();}return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : EscapeUtil.clean(ip);}

組裝微信支付請求

public <T> T createWxOrder(ReqStringParam param) throws WxPayException {WxPayService wxPayService = wxPayConfiguration.wxService();WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();request.setAppid(wxPayService.getConfig().getAppId());request.setMchId(wxPayService.getConfig().getMchId());request.setDetail("交易描述");request.setOutTradeNo(order.getOrderSn());//支付回調地址request.setNotifyUrl(wxPayService.getConfig().getNotifyUrl());request.setFeeType("CNY");// 貨幣類型 人民幣// 支付金額BigDecimal actualPrice = BigDecimal.valueOf(100L);request.setTotalFee(actualPrice.multiply(BigDecimal.valueOf(100L)).intValue());request.setSpbillCreateIp(IpUtils.getIpAddr(httpServletRequest));// 獲取iprequest.setTradeType("JSAPI");// 交易類型request.setBody("支付");request.setOpenid(user.getWeixinOpenid());// 微信openId//設置支付方式return wxService.createOrder(request);}

回調處理

public String parseWxOrderNotifyResult(String xmlData) throws WxPayException {WxPayOrderNotifyResult wxPayOrderNotifyResult = wxService.parseOrderNotifyResult(xmlData);String outtradeNo = wxPayOrderNotifyResult.getOutTradeNo();MallOrder order = iMallOrderService.lambdaQuery().eq(MallOrder::getOrderSn, wxPayOrderNotifyResult.getOutTradeNo()).one();if ("FAIL".equals(wxPayOrderNotifyResult.getResultCode())) {// 失敗業務邏輯處理} else {// 成功業務邏輯處理}return "<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>";}

總結

以上是生活随笔為你收集整理的JAVA+微信JSAPI支付的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。