這篇文章主要為大家展示了“springboot整合微信支付sdk過程的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“springboot整合微信支付sdk過程的示例分析”這篇文章吧。
金湖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),金湖網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為金湖近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的金湖做網(wǎng)站的公司定做!
前言
之前做的幾個微信小程序項目,大部分客戶都有要在微信小程序前端提現(xiàn)的需求。提現(xiàn)功能的實(shí)現(xiàn),自然使用企業(yè)付款接口,不過這個功能開通比較麻煩,要滿足3個條件;
之前實(shí)現(xiàn)過幾個微信支付的接口,不過都是自己碼的代碼,從網(wǎng)上找找拼湊,覺得看起來不舒服~_~ 于是乎找到了微信官方提供的支付sdk。這里用的是java版本,springboot整合java
下載sdk,引入項目
這里可以直接下載官方提供的sdk,然后將幾個java類拷貝到你的項目,也可以直接引入maven依賴,這里是直接將Java類拷貝到我項目的。
<!-- https://mvnrepository.com/artifact/com.github.wxpay/WXPay-SDK-Java --> <dependency> <groupId>com.github.wxpay</groupId> <artifactId>WXPay-SDK-Java</artifactId> <version>0.0.4</version> </dependency>
如圖,打開sdk項目,會有以下幾個文件
配置config文件
通過它的readme文件,可以看到幾個demo。但是首先我們需要配置相關(guān)的信息。新建一個java類繼承原先的配置類。
package com.github.wxpay.sdk; import java.io.InputStream; /** * @author Ean * @date 2019/7/2 */ public class MyConfig extends WXPayConfig { /** * 獲取 App ID * * @return App ID */ @Override String getAppID() { return "wxdb70c7c6b******"; } /** * 獲取 Mch ID * * @return Mch ID */ @Override String getMchID() { return "1522050000"; } /** * 獲取 API 密鑰 * * @return API密鑰 */ @Override String getKey() { return "xxxxxxxxxxxxxxxx"; } /** * 獲取商戶證書內(nèi)容 * 這里是讀取resources根目錄下面的證書文件 * @return 商戶證書內(nèi)容 */ @Override InputStream getCertStream() { InputStream certStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("apiclient_cert.p12"); return certStream; } /** * 獲取WXPayDomain, 用于多域名容災(zāi)自動切換 * 實(shí)現(xiàn)這個接口 * @return */ @Override public IWXPayDomain getWXPayDomain() { IWXPayDomain iwxPayDomain = new IWXPayDomain() { public void report(String domain, long elapsedTimeMillis, Exception ex) { } public DomainInfo getDomain(WXPayConfig config) { return new IWXPayDomain.DomainInfo(WXPayConstants.DOMAIN_API, true); } }; return iwxPayDomain; } }
提現(xiàn)接口開發(fā)
寫一個提現(xiàn)接口,傳入提現(xiàn)相關(guān)的參數(shù)
/** *@描述 提現(xiàn)接口 *@參數(shù) [param] *@創(chuàng)建人 Eangaie *@創(chuàng)建時間 2019/7/2 */ @PostMapping("despot") public Result despot(@RequestBody Map<String,Object> param) throws Exception { MyConfig config = new MyConfig(); WXPay wxpay = new WXPay(config,1); SortedMap<String, String> sendData; sendData=getDespData(param); sendData.put("sign", WXPayUtil.generateSignature(sendData,key , WXPayConstants.SignType.MD5)); Map<String,String> resData=wxpay.despot(sendData,config.getHttpConnectTimeoutMs(),config.getHttpReadTimeoutMs()); return ResultUtil.success(resData); } private SortedMap<String, String> getDespData(Map<String, Object> param) { SortedMap<String, String> params = new TreeMap<String, String>(); String nonce_str=commonUtil.gen32RandomString(); String partner_trade_no=commonUtil.createNo(); String openid= String.valueOf(param.get("openid")); String check_name="NO_CHECK"; String amount= String.valueOf(param.get("amount")); String desc="用戶提現(xiàn)"; String spbill_create_ip= String.valueOf(param.get("spbill_create_ip")); params.put("mch_appid",mch_appid); params.put("mchid",mchid); params.put("nonce_str",nonce_str); params.put("partner_trade_no",partner_trade_no); params.put("openid",openid); params.put("check_name",check_name); params.put("amount", amount); params.put("desc", desc); params.put("spbill_create_ip", spbill_create_ip); return params; }
這里的一些變量,比如商戶id,appid這些直接通過spring掃描application配置文件自動注入,接口參數(shù)主要是傳過來openid,跟提現(xiàn)金額。其實(shí)這個spbill_create_ip字段也可以固定的。
一開始是因?yàn)殚_發(fā)一直遇到IP不允許訪問的問題,最后發(fā)現(xiàn)。。是商戶號配置鍋,商戶號記得把配置允許IP訪問這個地方關(guān)了!,不然就一直不能訪問接口
提現(xiàn)成功返回,但是程序也會報500,因?yàn)閜rocessResponseXml這個函數(shù)里面有校驗(yàn)返回值。但是提現(xiàn)這里用不到,可以注釋掉代碼。
else if (return_code.equals(WXPayConstants.SUCCESS)) { return respData; // if (this.isResponseSignatureValid(respData)) { // return respData; // } // else { // throw new Exception(String.format("Invalid sign value in XML: %s", xmlStr)); // } }
至此,提現(xiàn)接口完成。。
以上是“springboot整合微信支付sdk過程的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
標(biāo)題名稱:springboot整合微信支付sdk過程的示例分析
網(wǎng)站地址:http://jinyejixie.com/article32/pshppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、全網(wǎng)營銷推廣、網(wǎng)站收錄、網(wǎng)頁設(shè)計公司、動態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)