淺析微信支付:前篇大綱

淺析微信支付:前篇大綱

本文是【淺析微信支付】系列文章的第一篇,主要會介紹一下爲何寫下這個系列以及對於微信支付的一點小經驗,與君共勉。

以下會分幾個步驟講一下我學習微信支付的過程,也是一部辛酸史,也是希望朋友們不要再次跌進坑裏,節省時間。

1、公司需要

如標題一般,公司來了這麼個需求,需要接入微信支付,那就必須搞定他了,相信大部分的小夥伴都是這樣接觸微信支付的吧。

首先我們需要明確一個需求,如果公司是做 App 支付,除了接入微信支付還需要接入支付寶、銀聯等第三方支付,那麼就需要考慮幾個問題,公司是選擇自主開發還是藉助第三方聚合支付(如Ping++),從成本等方面考慮,其實接入聚合支付也是一個不錯的選擇哦。

如果我們選擇自主開發微信支付,那麼問題就接踵而至,

什麼是微信支付?
微信支付能做什麼?
我們需要怎麼實現它?
網絡上是否有大神們寫好的demo直接拿來即可?
微信官方是否提供了明確的文檔?

上面的問題我們這個【淺析微信支付】都會將其一一解開,盡情期待!!!

2、翻車現場

明確了要做微信支付後,我們第一時間當然是去找微信官方文檔咯,地址如下:
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
非常遺憾的是,微信的文檔已知是給他們自己的程序員看的,如果是小白瞬間闖入,直接就是一臉懵,我到底該如何入手???黑人問號??嗯?

莫慌!其實微信支付套路也很簡單,他們是將簡單問題複雜化了,生怕開發者看不懂,文檔寫的非常的詳細(圍笑)導致咋們不知如何入手,從這裏開始一直到支付的所有環節都如此,文檔真正關鍵的地方模模糊糊,細節上確實非常細緻了。

下面講一下我是如何去學習微信支付的。

3、逼上梁山

絕對是逼上梁山的,簡單講,一個微信支付開發的流程如下:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3

商戶系統和微信支付系統主要交互:
1、小程序內調用登錄接口,獲取到用戶的openid,api參見公共api【小程序登錄API】
2、商戶server調用支付統一下單,api參見公共api【統一下單API】
3、商戶server調用再次簽名,api參見公共api【再次簽名】
4、商戶server接收支付通知,api參見公共api【支付結果通知API】
5、商戶server查詢支付結果,api參見公共api【查詢訂單API】

上面幾步中難點的在於第二步和第三步,中間會有一些坑,爲何?舉個例子,

微信支付接口文檔中的參數有的是駝峯有的卻是下劃線但官方並沒有強烈提示說明...
因爲版本關係有些參數還會不一樣...
對於再次簽名所需要的參數和如何簽名說的非常的簡單,需要一再試錯...
最大的問題是:對Java開發的支持並不怎麼好,官方的 sdk demo 真的不能直接拿來就能用,真的就是個 demo...

沒有經歷過的朋友可能不太能體會這種感覺,真挺難受的;因爲上面的問題無法解決只好手動百度+谷歌,然而問題來了,網上的文章同質化非常嚴重,往往點進去五篇文章,其中三篇都一毛一樣啊,流淚...還有人出收費教程,這也是賺錢的好辦法...

如上經歷所以纔有了這個系列的文章,當然最終我也在網絡大神們的文章中篩選出了精華,實現了微信支付的大部分主體功能,足夠滿足常規的企業開發了。

4、初衷

這個系列的文章其實早就有寫的想法了,因爲在我解決問題的過程中,遇到很多同行抱怨非常痛苦,但是實在是懶+並沒有打磨到拿來即用的地步,現在自我感覺也差不多了,所以分享給大家。

下面會貼出我整理的這個系列主要功能點,如下所示:

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.微信支付 MD5、HMACSHA256、SHA1、AES 加解密工具類

對於以上功能點的說明只會多不會少,可能其中還會穿插一些遇到的問題或異常處理,數據庫和業務處理邏輯等等;

我也創建了一個微信羣來提供給大家交流,一起共同進步吧。

結語

希望這個系列文章能給大家帶來一些啓發,幫助解決一些問題,與君共勉!!!

如果想要提前一覽源碼的小夥伴,可以先看看我的 github,地址如下:https://github.com/YClimb/wxpay-sdk/blob/master/README.md

加作者私人微信,作者微信號如下 yclimb,回覆 微信支付 可拉入微信支付討論羣與小夥伴一起探討哦,一定要標明 微信支付 哦~

到此本文就結束了,關注公衆號查看更多推送!!!


關注我的公衆號


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章