支付網(wǎng)關-簽名篇

百科定義為支付網(wǎng)關(Payment Gateway)是銀行金融網(wǎng)絡系統(tǒng)和Internet網(wǎng)絡之間的接口,是由銀行操作的將Internet上傳輸?shù)臄?shù)據(jù)轉換為金融機構內(nèi)部數(shù)據(jù)的一組服務器設備,或由指派的第三方處理商家支付信息和顧客的支付指令。其實簡而言之就是提供一個網(wǎng)關適配器,來橋接買家-商戶-銀行,實現(xiàn)支付功能,買家可以根據(jù)個人喜好自由選擇支付中使用的銀行卡,而網(wǎng)關根據(jù)對應銀行卡的請求對應的銀行進行相應的支付,將支付結果告知商戶和買家,幫商戶實現(xiàn)交易支付入賬、查詢、退款等功能。
健壯的支付網(wǎng)關應該提供支付,查詢,對賬,退款四個功能。
首先看看一筆普通的支付流程


Paste_Image.png

1.買家選購商品下單后生成訂單
2.用戶點擊支付將請求參數(shù)提交給網(wǎng)關
3.網(wǎng)關驗證簽名通過后,向對應銀行渠道或者第三方支付渠道提交支付申請
4.將銀行處理后的支付結果同步通知給買家確認扣款支付成功,同時異步通知給商戶該筆訂單支付成功
5.商戶確認收到通知后網(wǎng)關進行記賬,商戶根據(jù)業(yè)務需求執(zhí)行訂單后續(xù)操作

關于簽名:
可以看出網(wǎng)關通訊中簽名至關重要,是一道橋接的屏障,一把開啟支付大門的鑰匙。所以各大支付渠道根據(jù)各自的業(yè)務有對簽名特殊和個性的需求,也就致使對接各個支付渠道時候要適配這種區(qū)別才能順利接入,接入的速度也就會受這些所影響。
下面看下主流的簽名方式:
1.MD5簽名
開戶后商戶會有自己的商戶號和MD5時候使用的私鑰,參數(shù)加密后需要將私鑰拼接到對應的請求參數(shù)串后面,形成最終的請求參數(shù)字符串,然后對其進行MD5加密,產(chǎn)生32為的簽名字符串。
這里有必要說下請求參數(shù)串,一般都是將請求參數(shù)數(shù)組里的每一個值按從a 到z 的順序排序,若遇到相同首字母,則看第二個字母,以此類推。排序完成之后,再把所有數(shù)組值以“&” 字符連接起來,如:
待簽名字符串:bank_code=WAP_ZFB&buy_way=9&order_no=E20150102&pay_time=111111&phone=13635749989&input_cha=GBK&notify_url=http://***
在PHP 中有現(xiàn)成的函數(shù)ksort 可以實現(xiàn)這種字符串
ksort()PHP ksort() 函數(shù)用于對數(shù)組單元按照鍵名從低到高進行排序,如果成功則返回 TRUE,失敗則返回 FALSE。本函數(shù)會保留原來的鍵名,因此常用于關聯(lián)數(shù)組。

2.NC請求獲取方式
NC(Netsafe Client),是指企業(yè)提供前置機用于生成簽名和驗證簽名的一套更安全的銀企互聯(lián)的橋接系統(tǒng)。


Paste_Image.png

系統(tǒng)1是采用非NC方式的,系統(tǒng)2采用NC方式

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容