實用!!!!springBoot加入微信掃碼支付功能,有一說一還是挺有意思的


基於springboot微服務加入微信支付的功能

 

在線微信支付開發文檔:

https://pay.weixin.qq.com/wiki/doc/api/index.html

native掃碼支付方式:

 

 統一下單api

1.新建工程 導入pom依賴 注意:這個包是從微信開發網站下載的

<dependency>
    <groupId>com.github.wxpay</groupId>
    <artifactId>wxpay-sdk</artifactId>
    <version>3.0.9</version>
</dependency>

2.創建com.github.wxpay.sdk包,包下創建MyConfig類 ,繼承自抽象類WXPayConfig
這個包名結構不能改變
com.github.wxpay.sdk

public class MyConfig extends WXPayConfig {
    String getAppID() {
        return "wx8397f8696b538317";
    }
    String getMchID() {
        return "1473426802";
    }
    String getKey() {
        return "T6m9iK73b0kn9g5v426MKfHQH7X8rKwb";
    }
    InputStream getCertStream() {
        return null;
    }
    IWXPayDomain getWXPayDomain() {
        return new IWXPayDomain() {
            public void report(String domain, long elapsedTimeMillis, Exception ex) {
            }
            public DomainInfo getDomain(WXPayConfig config) {
                return new DomainInfo("api.mch.weixin.qq.com",true);
            }
        };
    }
}
 
        

appid:微信公眾賬號或開放平台APP的唯一標識 wx8397f8696b538317

 
        

mch_id:商戶號  1473426802

 
        

key:商戶密鑰 T6m9iK73b0kn9g5v426MKfHQH7X8rKwb

這個是對應支付下單配置類的3個方法的值,測試的時候可以用一下,開發的時候是需要公司去微信官網申請的


3.創建測試類,編寫代碼

MyConfig config=new MyConfig();
 
        
WXPay wxPay=new WXPay( config );
Map<String,String> map=new HashMap();
 
        
map.put("body","親親商城");//商品描述
 
        
map.put("out_trade_no","55555211");//訂單號
 
        
map.put("total_fee","1");//金額
 
        
map.put("spbill_create_ip","127.0.0.1");//終端IP
 
        
map.put("notify_url","http://www.baidu.com");//回調地址,這個回調地址到時候要寫自己公司注冊的地址
 
        
map.put("trade_type","NATIVE");//交易類型
Map<String, String> result = wxPay.unifiedOrder( map );
System.out.println(result);


map中需要提供的參數 key值要對應起來

 

 

 

 

 

 必填的都是需要添加到map中的數據 (公眾賬號ID,商戶號在config配置類中已經填寫了,另外隨機字符串和簽名會默認生成這個兩個也不需要填寫)



執行后返回結果 就是一個JSON字符串

{nonce_str=fvMGIlLauUPNCtws,
code_url=weixin://wxpay/bizpayurl?pr=I5sd2rc,
appid=wx8397f8696b538317,
sign=48B2938F70EDADC9CC235249BC085FD1D83456F67C46601FFD23B5AFBDA502D0,
trade_type=NATIVE, return_msg=OK, result_code=SUCCESS,
mch_id=1473426802, return_code=SUCCESS, prepay_id=wx17193859685440d561c4cef01259098400}
到這里下單的功能就實現了,下面是怎么樣生成二維碼了:
其中的code_url就是我們的支付URl ,我們可以根據這個URl 生成支付二維碼

QRCode.js 是一個用於生成二維碼的 JavaScript 庫。主要是通過獲取 DOM 的標簽,再通過 HTML5 Canvas 繪制而成,不依賴任何庫。支持該庫的瀏覽器有:IE6~10, Chrome, Firefox, Safari, Opera, Mobile Safari, Android, Windows Mobile, 等

我們看一下靜態原型wxpay.html中的代碼,顯示二維碼的地方放置<div id='qrcode'></div> ,然后編寫腳本

 

把下面的Javas'c'rpit腳本導入到HTML頁面就行了

<script src="js/plugins/qrcode.min.js" ></script>
<script type="text/javascript">
let qrcode = new QRCode(document.getElementById("qrcode"), {
 width : 200,
 height : 200
});
qrcode.makeCode("weixin://wxpay/bizpayurl?pr=Y3hDTZy");//這里的值是動態生成的,測試時候可以直接把獲取到的code_url值復制到這里一樣的看到效果
</script>

注意要有這個qrcode.js這個文件庫哦
開發中我們通常是把 code_url 的值通過thymeleaf來傳遞到HTML頁面去的,來動態的生成要支付的二維碼
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM