微信支付 java 集成案例_Spring Boot項目中集成微信支付v3

1. 前言

最近忙的一批,難得今天有喘氣的機會就趕緊把最近在開發中的一些成果分享出來。前幾日分享了自己寫的一個微信支付V3的開發包payment-spring-boot-starter,就忙里偷閑完善了一波。期間給微信支付提交了6個BUG,跟微信支付的產品溝通了好幾天。

別忘記給個Star啊。

那么都完善了哪些內容呢?胖哥來一一介紹。

2. Maven 中央倉庫

是的,不用再自行編譯打包部署了,我已經提交到Maven中央倉庫了。最新的坐標是:

cn.felord

payment-spring-boot-starter

1.0.1.RELEASE

這才算有了點正經開源項目的樣子。

3. 功能更加完善

在上次分享中僅僅實現了微信支付的代金券能力,這次加入了更多的微信支付能力:

微信支付V3的基礎支付-直連模式優化。

實現微信支付V3的合單支付。

同時自行實現了多商戶、多APPID的多租戶模式。后續微信支付分等功能也將接入進來。

4. 完善樣例

大部分還是喜歡拿來就用,那么我編寫了一個DEMO項目,比如微信支付回調的控制器代碼:

/**

* 微信支付成功回調.

*

* 無需開發者判斷,只有扣款成功微信才會回調此接口

*

* @param wechatpaySerial the wechatpay serial

* @param wechatpaySignature the wechatpay signature

* @param wechatpayTimestamp the wechatpay timestamp

* @param wechatpayNonce the wechatpay nonce

* @param request the request

* @return the map

*/

@SneakyThrows

@PostMapping("/transaction")

public Map transactionCallback(

@RequestHeader("Wechatpay-Serial") String wechatpaySerial,

@RequestHeader("Wechatpay-Signature") String wechatpaySignature,

@RequestHeader("Wechatpay-Timestamp") String wechatpayTimestamp,

@RequestHeader("Wechatpay-Nonce") String wechatpayNonce,

HttpServletRequest request) {

String body = request.getReader().lines().collect(Collectors.joining());

// 對請求頭進行驗簽 以確保是微信服務器的調用

ResponseSignVerifyParams params = new ResponseSignVerifyParams();

params.setWechatpaySerial(wechatpaySerial);

params.setWechatpaySignature(wechatpaySignature);

params.setWechatpayTimestamp(wechatpayTimestamp);

params.setWechatpayNonce(wechatpayNonce);

params.setBody(body);

return wechatApiProvider.callback(TENANT_ID).transactionCallback(params, data -> {

//TODO 對回調解析的結果進行消費

});

}

基本就是抄來就能用的。還有更多請參閱 payment-spring-boot-samples項目:

5. 文檔

寫文檔確實是一個枯燥的事情,參考了其它一些開源項目的樣子弄了個像模像樣的文檔:

09eb00f20cdc887d51cf0c3a435047ed.png

快速接入指南、JavaDoc、踩坑分享都在文檔里面了。如果有什么需要完善的地方可以提交ISSUE。

今天的分享就到這里,如果你在微信支付中遇到了什么問題可以留言提問,分享使我快樂。

以上就是Spring Boot項目中集成微信支付v3的詳細內容,更多關于Spring Boot項目微信支付的資料請關注腳本之家其它相關文章!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452812.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452812.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452812.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單挑力扣(LeetCode)SQL題:1308. 不同性別每日分數總計

相信很多學習SQL的小伙伴都面臨這樣的困境,學習完書本上的SQL基礎知識后,一方面想測試下自己的水平;另一方面想進一步提升,卻不知道方法。 其實,對于技能型知識,我的觀點一貫都是:多練習、多實…

需求與范圍駕馭深刻反省總結

每天都在講范圍、說需求,真的到了想整理出點什么的時候,卻一下子不知從何說起。也許是熟悉麻痹癥吧。根據我的破經歷,在需求方面有幾個是最搞人的,只要我們方法得當,雖然不一定能夠完全駕馭,但起碼可以改善…

16. vim

vim編輯器是vi的升級版本,帶顏色顯示安裝yum install -y vim-enhanced將passwd文件復制到其他目錄下,vim后沒有顏色 一般模式上下左右方向鍵或kjhl四個鍵移動光標n方向鍵 向特定方向移動n位ctrl b 或 pageup 向上翻頁ctrl f 或 pagedown 向下翻頁0或sh…

軟件生命周期

軟件生命周期由軟件定義、軟件開發和運行維護 ( 也稱為軟件維護 )3 個時期組成,每個時期又進一步劃分成若干個 階段 。

Jmeter(三)_配置元件

HTTP Cookie Manager 用來存儲瀏覽器產生的用戶信息 Clear Cookies each Iteration:每次迭代請求,清空cookies,GUI中定義的任何cookie都不會被清除。Implementation:默認HC4CookieHandlerCookie Policy:將用于管理Cook…

山寨版項目管理經驗小結

不知道這個標題是否合適。 忙了互聯網,再忙作軟件,今天好不容易閑下來,寫點最近總結的一些經驗。最近在和北京幾家大的軟件公司的合作過程中,也許我所看到的,可能不代表全部,但是值得從事這個行業的人重視。…

Django項目--首頁靜態化

0前言 1.使用Celery生成靜態頁面 task.py中新增任務函數generate_static_index_html(),任務函數生成靜態頁面。 app.task def generate_static_index_html():產生首頁靜態頁面# 獲取商品的種類信息types GoodsType.objects.all()# 獲取首頁輪播商品信息goods_bann…

C語言指針,申請、釋放內存,線程

2019獨角獸企業重金招聘Python工程師標準>>> 1:普通情況下,C語言的指針是使用虛擬地址,并非物理地址; 2:C語言mallco函數可以根據輸入的值,申請一塊連續的內存;free(*p&a…

Docker在Ubuntu16.04上安裝

轉自:http://blog.51cto.com/collen7788/2047800 1、添加Docker源 sudo apt-get update 2、增加CA證書 sudo apt-get install apt-transport-https ca-certificates 3、添加GPG Key(一種加密手段) sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:…

java偽協議_通過偽協議解決父頁面與iframe頁面通信的問題

我們經常會有父頁面與iframe頁面的操作,比如這個iframe里面的內容是js寫的。如以下代碼var iframe document.getElementById("iframe"),doc iframe.contentWindow.document;doc.open();doc.write("---------something------");doc.close();以…

Django項目--靜態首頁的數據緩存(設置、獲取、更新)

0 前言 將處理計算的結果先臨時保存起來,下次使用的時候可以先直接使用,如果沒有這個備份的數據,重新進行計算處理。 將緩存數據保存在內存中 (本項目中保存在redis中) cache注意事項: 1)如果…

關于騰訊算法大賽

騰訊算法大賽 本文參考于我協會前會長吳師兄的文檔 騰訊社交廣告高校算法大賽是面向高校大學生的算法大賽,作為騰訊核心的廣告業務單元,騰訊社交廣告通過對海量社交數據進行深入分析,構建多樣廣告場景,與8億用戶連接對話。在大數據…

列表推導式

#麻煩辦法new_lst []for i in range(10): new_lst.append(i**2)print(new_lst)#簡單辦法print([i**2 for i in range(10)])# 小題下面列表中取余list_a [1,2,3,-5,20,-7]print([i%2 for i in list_a])# 30以內所有能被3整除的數print([won for won in range(30) if won%3 …

軟件過程

軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。 軟件過程描述為了開發出客戶需要的軟件,什么人(who)、在什么時候(when)、做什么事(what&#x…

【總結整理】JavaScript的DOM事件學習(慕課網)

事件:在文檔或者瀏覽器窗口中發生的一些,特定的交互瞬間 HTML和JavaScript的交互通過事件 來實現 比如:1.滾動條向下滑動,加載圖片 2.圖片輪播,鼠標由2-5頁調換 本章內容1、理解事件流2、使用事件處理程序3、不同的事件…

Python面試題總結(6)--數據類型(綜合)

1. Python 里面如何實現 tuple 和 list 的轉換? 答: Python 中的類型轉換,一般通過類型強轉即可完成 tuple 轉 list 使用 list() 方法 list 轉 tuple 使用 tuple() 方法 2. 我們知道對于列表可以使用切片操作進行部分元素的選擇&#xff0c…

項目經理需要的思維批判

想做好項目經理,就一定要改變你的思維方式。這對于技術出身的朋友尤其重要。 清末人們自以為天朝,他國皆為蠻夷。結果如何呢?喪師辱國,自己淪為病夫。其根本莫非自己腦筋不對頭?后來又搞洋務運動,以為洋人…

NavigationView更改菜單icon和title顏色變化效果

NavigationView menu默認icon和title會隨著菜單狀態改變而改變,選擇某個菜單后再次打開側邊菜單后會發現該菜單的icon和title會變成應用的主顏色,其他菜單項仍然為黑色。 如果想關閉系統默認的這個效果,有兩種方式: 1. XML布局文件…

java項目打鏡像_docker通過dockerfile打java項目鏡像

環境:centos7思路:java -jar 啟動的項目打包成docker images進行運行創建dockerfile——>創建shell腳本——>打包images1、dockerfile內容如下[rootk8s-master xxl-execl]# more dockerfile#網上拖取java8的鏡像FROM java:8MAINTAINER zhangshan-m…