本文是【淺析微信支付】系列文章的第一篇,主要會介紹一下爲什麼寫下這個系列以及對於微信支付的一點小經驗,與君共勉。
如下會分幾個步驟講一下我學習微信支付的過程,也是一部辛酸史,也是但願朋友們不要再次跌進坑裏,節省時間。php
如標題通常,公司來了這麼個需求,須要接入微信支付,那就必須搞定他了,相信大部分的小夥伴都是這樣接觸微信支付的吧。html
首先咱們須要明確一個需求,若是公司是作 App 支付,除了接入微信支付還須要接入支付寶、銀聯等第三方支付,那麼就須要考慮幾個問題,公司是選擇自主開發仍是藉助第三方聚合支付(如Ping++),從成本等方面考慮,其實接入聚合支付也是一個不錯的選擇哦。git
若是咱們選擇自主開發微信支付,那麼問題就接踵而至,程序員
什麼是微信支付? 微信支付能作什麼? 咱們須要怎麼實現它? 網絡上是否有大神們寫好的demo直接拿來便可? 微信官方是否提供了明確的文檔?
上面的問題咱們這個【淺析微信支付】都會將其一一解開,盡情期待!!!github
明確了要作微信支付後,咱們第一時間固然是去找微信官方文檔咯,地址以下:https://pay.weixin.qq.com/wiki/doc/api/index.html
;數據庫
如今小程序很是火,咱們就拿小程序來舉例子吧,進入小程序支付的開發文檔頁面:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1
;
很是遺憾的是,微信的文檔已知是給他們本身的程序員看的,若是是小白瞬間闖入,直接就是一臉懵,我到底該如何入手???黑人問號??嗯?小程序
莫慌!其實微信支付套路也很簡單,他們是將簡單問題複雜化了,生怕開發者看不懂,文檔寫的很是的詳細(圍笑)致使咋們不知如何入手,從這裏開始一直到支付的全部環節都如此,文檔真正關鍵的地方模模糊糊,細節上確實很是細緻了。微信小程序
下面講一下我是如何去學習微信支付的。api
絕對是逼上梁山的,簡單講,一個微信支付開發的流程以下:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3
;安全
商戶系統和微信支付系統主要交互: 一、小程序內調用登陸接口,獲取到用戶的openid,api參見公共api【小程序登陸API】 二、商戶server調用支付統一下單,api參見公共api【統一下單API】 三、商戶server調用再次簽名,api參見公共api【再次簽名】 四、商戶server接收支付通知,api參見公共api【支付結果通知API】 五、商戶server查詢支付結果,api參見公共api【查詢訂單API】
上面幾步中難點的在於第二步和第三步,中間會有一些坑,爲什麼?舉個例子,
微信支付接口文檔中的參數有的是駝峯有的倒是下劃線但官方並無強烈提示說明... 由於版本關係有些參數還會不同... 對於再次簽名所須要的參數和如何簽名說的很是的簡單,須要一再試錯... 最大的問題是:對Java開發的支持並不怎麼好,官方的 sdk demo 真的不能直接拿來就能用,真的就是個 demo...
沒有經歷過的朋友可能不太能體會這種感受,真挺難受的;由於上面的問題沒法解決只好手動百度+谷歌,然而問題來了,網上的文章同質化很是嚴重,每每點進去五篇文章,其中三篇都一毛同樣啊,流淚...還有人出收費教程,這也是賺錢的好辦法...
如上經歷因此纔有了這個系列的文章,固然最終我也在網絡大神們的文章中篩選出了精華,實現了微信支付的大部分主體功能,足夠知足常規的企業開發了。
這個系列的文章其實早就有寫的想法了,由於在我解決問題的過程當中,遇到不少同行抱怨很是痛苦,可是實在是懶+並無打磨到拿來即用的地步,如今自我感受也差很少了,因此分享給你們。
下面會貼出我整理的這個系列主要功能點,以下所示:
1.淺析微信支付:前篇大綱 2.微信支付簡單介紹 3.開發前的準備 4.統一下單接口 5.支付結果通知 6.查詢訂單 7.關閉訂單 8.申請退款 9.退款結果通知 10.查詢退款 11.下載對帳單 12.下載資金帳單 13.如何使用沙箱環境測試 14.支付驗收指引 15.刷卡支付驗收用例 16.掃碼支付驗收用例 17.公衆號支付驗收用例 18.免充值產品功能使用指引 19.(餘額提現)企業付款到零錢資金使用商戶號餘額資金 20.商戶平臺-現金紅包-發放普通紅包 21.商戶平臺-現金紅包-查詢紅包記錄 22.商戶平臺-代金券或立減優惠-發放代金券 23.商戶平臺-代金券或立減優惠-查詢代金券信息 24.商戶平臺-代金券或立減優惠-查詢代金券批次 25.公衆平臺-微信卡券-建立卡券 26.公衆平臺-微信卡券-HTML5線上發券(JS-SDK接口) 27.公衆平臺-微信卡券-查看卡券詳情 28.公衆平臺-社交立減金活動-概述 29.公衆平臺-社交立減金活動-開通產品權限 30.公衆平臺-社交立減金活動-完成免充值模式驗收 31.公衆平臺-社交立減金活動-建立代金券並設置跳轉小程序 32.公衆平臺-社交立減金活動-建立支付後領取立減金活動接口 番外篇: 1.微信公衆號網頁受權 2.微信公衆號模板消息發送 3.生成永久無限制微信小程序二維碼 4.多個微信公衆號同一商戶平臺的支付處理 5.微信退款時jdk更換安全包的處理 6.微信支付 MD五、HMACSHA25六、SHA一、AES 加解密工具類
對於以上功能點的說明只會多不會少,可能其中還會穿插一些遇到的問題或異常處理,數據庫和業務處理邏輯等等;
我也建立了一個微信羣來提供給你們交流,一塊兒共同進步吧。
但願這個系列文章能給你們帶來一些啓發,幫助解決一些問題,與君共勉!!!
若是想要提早一覽源碼的小夥伴,能夠先看看個人 github,地址以下:https://github.com/YClimb/wxpay-sdk/blob/master/README.md
加做者私人微信,做者微信號以下 yclimb
,回覆 微信支付
可拉入微信支付討論羣與小夥伴一塊兒探討哦,必定要標明 微信支付
哦~
到此本文就結束了,關注公衆號查看更多推送!!!