電子商務平臺支付介面開發原理及流程
隨著電子商務行業的發展,很多中小企業也加入了電子商務大軍,實現電子商務非常重要的一個需求就是有一個強大的電子商務網站平臺,用於對企業電子商務相關產品、服務進行管理等操作。而完成整個電子商務流程最不能越少的環節就是收款,通過網路,將商品、服務的款項支付給電子商務平臺的所有者。
我們將電子商務平臺所有者,即在電商平臺中出售商品或服務的提供者,稱為商戶。電子商務平臺要實現的支付功能,即是顧客通過電商平臺進行商品、服務的選擇,提交訂單,由平臺進行價格處理,併為訂單計算出需要支付的總額,並提供給顧客進行付款。
商戶需要與銀行、銀聯或第三方支付機構進行簽約實現網站的支付功能
那麼顧客通過網路如何付款,並且商戶如何收到錢款並轉到自己的銀行卡中呢?這就是本篇文章介紹的重點。
我們知道,資金處理必需經由銀行,商戶可以與某商業銀行簽約,成功該商業銀行的特約商戶,由銀行提供相關的技術介面,實現在網站中新增相關介面程式,將使用者在該銀行的相關款項轉入到自己的賬戶中,實現收款。
然而商業銀行是很多的,使用者所持有的銀行卡也是多種多樣,所以要實現讓大多數銀行卡都可以通過網站支付,就需要單獨與各家銀行進行簽約,接入成本非常高。為解決此接入繁瑣的問題,我們可以直接與“銀聯線上支付”進行簽約,使用銀聯提供的支付介面。
“銀聯線上支付”是中國銀聯聯合商業銀行共同推出的整合化、綜合性、開放性網上支付平臺,全面支援各型別銀聯卡。方便快捷、安全可靠、全球通用。然而隨著人民銀行頒發第三方支付牌照,各種第三方支付公司直接與商業銀行進行簽約並對商戶提供支付接入,第三方支付公司接入門檻低、費率低、效率高而且技術開發簡單引起了眾多商業網站的接入使用。
像大家熟知的微博錢包、支付寶、財付通、快錢等,都是擁有人民銀行第三方支付拍照的正規支付公司。
與銀聯、第三方支付公司簽約後的收款流程
商戶網站將支付資訊提供給支付閘道器後,網站引導使用者進入相關銀行閘道器進行支付,完成後銀行扣款,並將支付結果返回給第三方支付公司,支付公司收到結果後將為商戶進行支付平臺內的入賬處理,等待結算。結算完成後,商戶即可登入第三方支付平臺進行提現,將資金通過第三方支付平臺轉入到自己的銀行卡中。
現在支付公司提供的結算週期一般是T+1或T+0,T+1模式時,即使用者支付完畢後,支付公司將在第二天進行結算,商戶即可將資金提取到自己的銀行卡,或支付公司直接結算到約定的商戶收款賬戶中。如果是T+0的模式,則支付資金可以隨時清算,並提現到商戶銀行卡。
與銀聯、第三方支付公司簽約後的技術開發流程
與支付公司簽約後,網站將獲得相關開商戶號、金鑰、支付閘道器以及開發文件。技術人員通過閱讀文件,獲取需要使用的相關資料引數,如商品名稱、金額等,並通過約定的加密方式及金鑰進行加密處理,將以FORM表單POST或GET的方式傳送給支付公司提供的支付閘道器URL。
支付閘道器收到商戶提供的相關引數後將進行資料處理及加密驗證,如果資料合格且金鑰驗證成功,將引導使用者進入各家銀行選擇頁面,使用者在選擇自己使用的銀行後,將進入相關銀行的支付閘道器進行支付。
使用者在銀行閘道器成功付款後,銀行進行扣款,並將支付結果回傳給支付公司,支付公司收到銀行的結果,同樣進行簽名驗證,並將支付結果資訊傳遞給商戶網站。
支付公司將支付結果傳遞給商戶網站也是通過FORM表單的方式,只是該資料傳遞屬於伺服器後端處理的。商戶網站向支付公司發起支付請求傳遞支付相關引數時,就包含一個或兩個URL,用於指定接收支付結果的URL中。
商戶網站接入支付結果有兩種方式,一種是通過瀏覽器進行跳轉通知,一種是伺服器端非同步通知。那麼商戶的技術人員該如何選擇呢?我們對這兩種通知型別進行分析。
瀏覽器跳轉通知:這種方式主要是基於使用者訪問的瀏覽器,如果使用者在銀行頁面支付成功後,直接關閉了頁面,並未等待銀行跳轉到支付結果頁面,那麼商戶網站就收不到支付結果的通知,導致支付結果難以處理。而且瀏覽器端資料很容易被篡改,而降低安全性。所以我們推薦技術人員開發時使用後端伺服器通知做技術判斷,而只將前臺通知進行支付相關顯示,不進行邏輯處理。
伺服器異部通知:該方式是支付公司伺服器後臺直接向用戶指定的非同步通知URL傳送引數,採用POST或GET的方式。商戶網站接收異部引數的URL對應的程式中,要對支付公司返回的支付結果進行簽名驗證,成功後進行支付邏輯處理,如驗證金額、訂單資訊是否與發起支付時一致,驗證正常則對訂單進行狀態處理或為使用者進行網站內入賬等。