支付系統總體設計:總體架構設計以及注意要點(三)

通常來講,銀行會提供兩種支付途徑:無跳轉的快捷支付接口和帶跳轉的網銀接口。前者在綁卡,支付的時候,不須要跳到銀行頁面上去處理,後者則須要在銀行的網銀頁面上完成。顯然前者對用戶來講體驗要好多了,用戶流程不會被打斷。快捷支付要求支付系統在本地保存用戶的支付信息,如卡號,登記手機。系統要確保這些信息不被泄漏。風險很是好,因此大部分銀行要求接入方必須通過ADSS檢驗纔可以接入快捷支付。linux

  這種固定方式的接入有單點故障的問題,一旦某個渠道出問題,綁定的支付方式就沒法使用。改進策略是爲每一個支付方式定義多個渠道,第一個渠道出問題即選擇第二個,以此類推。android

  固然,更進一步,能夠爲候選渠道定義權重,按照權重來選擇支付方式。當渠道出問題,自動調整權重。docker

  路由實現上還會更復雜,對同一張銀行卡,運營上會要求在不一樣的系統上,好比android,iOS,windows上,或者不一樣地區,如大陸,臺灣,香港,北美等,甚至不一樣業務上,採用不一樣渠道來支付。windows

  支付渠道安全

  若是採用微服務來實現,總體設計上,能夠考慮將支付渠道分離、支付網關前置分離。支付渠道的微服務實現有兩種策略,一種是按照服務來拆分,一種是按照渠道來拆分。服務器

  ● 按渠道拆分,指每一個渠道單獨部署在一個容器中,對支付網關提供相同的服務。微信

  ● 按服務拆分,是按接口來拆分,分爲支付,對帳,退款等子系統,每一個服務單獨部署,全部容器的服務都實如今一塊兒。微服務

  渠道拆分性能

  按照服務來拆分的一個典型案例是大衆點評網的早期實現。 大衆點評支付渠道網關係統的實踐之路。 每一個支付服務接口實現爲一個獨立的子系統,獨立部署,經過支付網關前置來對外提供服務。 這篇文章裏面也提到這種方式存在的問題,微信支付

  ● 銀行的加密客戶端會有各類奇葩的需求,有些能夠支持linux,有些要windows系統,如何在一個容器中知足全部需求?

  ● 這樣拆分後,每一個渠道接口獨立部署。某個渠道出問題也不會影響其餘渠道。至於渠道訪問量小致使資源浪費問題,能夠經過虛機或者docker的資源調度來解決,誰也不會在物理機上玩微服務。

  ● 對接渠道難點在於對輸入輸出作加密和解密,以及組裝和解析報文。同一個渠道對不一樣的服務的加密解密方式是同樣的,報文格式也是同樣的。按渠道來構建服務能夠共用這樣方法,減小開發投入。

  ● 從安全的角度,按渠道劃分也有優點。通常渠道都要求只對接到特定ip的機器,這樣每一個渠道對接系統所在的機器僅開放對渠道和支付網關前置機的訪問白名單便可,儘量的縮減被暴露的風險。

  接入渠道

  對於支付渠道,首先考慮的是接入哪些渠道。要對接的渠道按優先級有:

  ● 第三方支付,對大部分應用來講,支付寶和微信支付都是必須的,通常來講,這二者能夠佔到90%以上的交易量。用戶不須要綁卡,受權後直接支付就行。各類平臺都支持,性能和穩定性都不錯。對於一些特殊業務,好比遊戲,企業支付,能夠查看一些專用的第三方支付平臺。

  ● 銀聯,這貨的存在,極大方便了和銀行的對接。和第三方支付主要不一樣在兩個地方一是須要綁卡,也就是用戶先把卡號,手機,身份證號提供出來。這一步會折損很多用戶。綁卡後,之後的支付操做就簡單了,用戶只須要輸入密碼就行。手機客戶端不須要像第三方支付那樣安裝SDK,都在服務器端完成。固然,這是針對快捷支付。網銀支付仍是挺麻煩的。銀聯接入也須要ADSS認證。

  ● 銀行,建議先看這一篇文章,瞭解下對接銀行的難度。那最終須要選擇哪些銀行?先看個統計數據。 截至 2015 年末,我國銀行業金融機構包括 5 家大型商業銀行、12 家股份制商業銀行、133 家城市商業銀行、5 家民營銀行、859 家農村商業銀行、71 家農村合做銀行、1373家農村信用社、1 家郵政儲蓄銀行、3 家政策性銀行、 311 家村鎮銀行、48 家農村資金互助社。優先選擇5家商業銀行,他們佔40%的交易量。其次是股份制銀行和郵儲。這就18家銀行了。老闆要是不滿意,城商行和農商行加起來有1000多家呢。通常對接一個銀行預計有3周左右的工做量,大部分銀行須要專線接入,費用和帶寬有關,一年也得幾萬費用。不一樣銀行對接入環境有不一樣要求,這也是成本。另外,還有一個重大風險,就是央行在搞得網聯繫統,畢竟尚未出來,相關資料參考知乎上關於網聯的一篇討論。

  ● 手機支付,如今很多廠商都內置了各類支付,好比蘋果的In-App支付, 三星支付、華爲支付等, 這些支付僅針對特定的手機型號, 支持NFC等,根據業務須要也能夠接入。 就是目前用戶羣不大,收益不明顯。

  ● 話費支付, 這一塊容易被人忽略,但考慮到國內很多職場人士,話費是公司報銷的,每月多的用不完,因此這塊支付仍是至關有市場的。 問題是,聯通和移動兩大運營商,不只接口不能互通,內部各個地域也是各自爲政,因此對接起來仍是有點麻煩。不過話費支付領域也有相似支付寶微信的第三方支付公司,好比虹軟、聯動優點等公司。

  這篇文章對支付系統總體設計作一個概要描述,後續會逐步補充內容並完善。其實每一個模塊都是一個大坑,有不少的技術細節。

相關文章
相關標籤/搜索