第三方支付各種支付方式及廠商的對比分析,文件檢視筆記
由於臨近實習,於是想趁著這段時間把所有想學的,無論是用於裝逼也好,實用也好的技術拉一拉,互相認識認識,算是入個門。
大概半個月前,花了部分精力與時間倉促的練習了一下第三方授權登陸,單點登陸,以及spring-security-oauth2協議的實踐。 那是因為有視訊跟著學習,雖然有些冒進,。但是終歸是將它給練習完並除錯走通。 最重要的是,我在這個階段加入了自己的理解。 這樣無論是學習的永續性還是實際作用,都應該是不差。 然而,第三方支付是自己一直就想學習實踐的內容,奈何自己並沒有微信與支付寶的稽核條件,也沒有真實的商戶號,並且也沒有找到相關的教程。 但是通過上次整合極光通訊,給了自己一些經驗,那就是看開發文件也是一項重要的能力。 所以花了一部分的將微信和支付寶以及銀聯的主要支付方式的開發文件給過了一遍,並做下自己的理解。 方便以後在用到的時候就不用去從頭學習。
經過整理,我將從以下一些方面展開筆記:
1.第三方授權登陸 與 第三方支付模型的對比;
2.第三方支付中的邏輯主體;
3.相應邏輯主體的構成方式;
4.從互動方式來看,支付方式的邏輯分類;
5.在整個支付邏輯中,核心互動解析;
6.銀聯與第三方支付的對比分析;
---------------------------------------------------------------------------------------------------------------------------------------------------------------
1.第三方授權登陸 與 第三方支付模型的對比:
這個問題是針對我自身而言,用於類比學習。第三方授權登陸包括了兩個核心概念,既認證,授權;
先看一看這兩個核心在第三方授權登陸的表現:
再看一看這兩個核心在第三方支付中的呈現:
這是自己對於整個流程的理解,並沒做相關查詢考證 。 僅供自己參考之用。。。
2.第三方支付中的邏輯主體及其構成方式:
可見,第三方支付的完成,實際上就是這些邏輯主體之間的通訊互動。 這裡的前端,並不是指的程式設計中前後端的前端。 而是使用者介面。 或者說人機介面吧。。 只要弄懂了它們之間在互動中,各自扮演的角色,以及所起到的作用,則所有的支付方式將會變的so easy! 所以下一個問題就來了:
4.從互動方式來看,支付方式的邏輯分類:
在微信,支付寶的官方文件上,可以看到將支付方式分門別類,十分的詳細。 但是對於外部開發者而言,當然是希望越簡潔越好。 最好就是啥文件也不要讓我看,直接上一張圖我瞬間理解就好。 但是這是不現實的,從複雜度,以及規模方面都不可能實現。畢竟人家是偌大的一個公司。
這裡記錄一下微信以及支付寶,銀聯列出的主要的支付方式:
微信:
APP支付; H5支付; 付款碼支付; 掃碼支付; 小程式支付;
支付寶:
當面付(掃碼支付,付款碼(條碼)支付,聲波支付); App支付; 手機網站支付; 電腦網站支付;
銀聯:
閘道器支付;
從這些巨頭給出的,現在已經商用的支付方式中,對我學習而言,是比較難記的。 因此何不自己定義一個維度標準來,剛好又與學習整個流程相結合,一舉兩得。 因此我以 進入授權 這個操作的互動方式來作為這個維度標準:
這樣的話,所有的支付方式將會被分為三類,它們分別為:
1.主動掃碼付: 使用者通過第三方終端應用主動掃取相關的授權連結,輸入密碼授權。 如微信與支付寶的掃碼支付。
2.被動掃碼付: 這裡的碼,實際上就是經過簽名後的資料。 如支付寶的 條碼支付,聲波支付; 微信的 條碼支付。
3.泛化的APP支付: 泛化的APP支付,注意這裡的APP不只是指移動端APP,還包括網頁端。 如:支付寶的手機端網頁支付(沒有支付寶APP的情況下);電腦端網頁支付; 銀聯的閘道器支付;
5.在整個支付邏輯中,核心互動解析:
1.主動掃碼付:
2.被動掃碼付:
3.泛化APP支付:
注意,前端間的互動手段:
瀏覽器---> App : deeplink
App -----> 瀏覽器: 通過後臺
APP -----> App : deeplink, 以及 回撥
瀏覽器-----> 瀏覽器: url(如,電腦端支付寶網頁支付)
後端間互動方式:
後端 <-----> 後端: url
前後端的互動方式:
前端----> 後端: url
後端-----> 前端: socket; 訊息輪詢機制;
6.銀聯與第三方支付的對比分析:
在銀聯的開發文件上面,我們可以看到它與支付寶,微信有所不同。其中最有印象的是,它提供了所謂的證書申請。包括:簽名證書,敏感資訊加密證書,驗簽證書。 它的作用是為了身份認證。
我的理解是,簽名證書 相當於 微信支付寶的: Appkey;驗簽證書相當於 微信支付寶的 AppSecret。 它們又分別充當了非對稱金鑰加密體系中的公鑰和私鑰。 它的核心是公鑰與私鑰的匹配的唯一性。 具體的內容在我以前總結的一篇文章中又介紹:這裡。
其它的業務邏輯大可類比。
總結:
1.微信,與支付寶,銀聯的泛化APP支付大體的邏輯差不多。 可以封裝成一個框架來方便使用。
2.微信,支付寶的 主動掃碼支付大體邏輯相同,可以封裝。
3. 微信,支付寶的 被動掃碼支付大體邏輯也相同, 可以封裝。
4. 第三方授權登陸與第三方支付的確有一些相似性。