銀聯介面開發隨筆(1)

2022-03-05 14:58:38 字數 2542 閱讀 7230

銀聯介面開發隨筆(1

銀聯的介面開發涉汲到的東西比較多,需要通過乙個系統的文章來完成,第一篇先介紹一下相關常用到的概念。

首先做個廣告,我們公司的機器如下圖所示

可以在上面進行手機話費充值,購買遊戲點卡、電影票,列印優惠券,水、電、煤繳費,另外值得提一下的是還可以直接刷銀行卡進行以上消費,馬上要上線的還有信用卡還款等功能。現在機器大多在上海的全家便利店和羅森便利店裡。

以前我去

atm機取錢,每次都很感嘆銀行這種跟人民幣直接打交道的機器是多麼強大,安全可靠,現在經過一段

chinapay

和銀商pos

介面開發以後,仍然感嘆

atm機的強大,安全可靠。目前有文章寫關於

pos開發,或者說

atm機開發的很少,網上只能找到一些只言片語,或者蜻蜓點水式的,一來這方面的資料都只有銀行、銀聯自己知道,還有一些硬體廠商,外界流傳出來的並不多,所以我想通過自己知道的一些情況,做個整理,也希望對希望了解相關業務的程式設計師做個參考

下面先介紹一下相關概念

銀行卡號:平常我們看到的銀行卡號的磁條都是以磁軌形式存在,常見到的銀行卡號一般都在

2磁軌上,要想知道這些資訊,需要專門的讀卡器裝置,就像銀行

atm機裡的讀卡器,或者像平常看到一些支援銀聯

pos刷卡業務的

pos機,現在卡號一般是

19位,前6位是

bin號,可以區分是什麼銀行的卡,現在中國銀聯卡多以

62開頭,

7-18

位由各家銀行自己定義,最後一位是校驗碼,校驗規則網上有很多資料,不作解釋。

iso 8583協議:該協議是全世界銀行通用的通訊協議,共有

128個域,但是目前

pos開發中常用其前

64位,這些都是由各家銀行自己定義,關於這個協議,比較複雜,這裡只好一代而過,不過這裡關於點陣圖的概念還是需要說一下。想像一下

8583

協議定義了

128個域,而我們平常不是每個域都需要的,打個比方,你想查詢卡的餘額,你只需要卡號和密碼就可以了,其它的資訊都不需要,那這種情況下你還是傳

128個域的資訊是一種浪費,像銀行這種對網路資源也比較節省的,更不想產生這種資源浪費,於是點陣圖的重要性就體現出來了,在每段報文前面加個

8個位元組的報文域,乙個位元組由8個

2進製碼,這樣就有

8*8個

2進製碼用於表示

8*8個域,如果有該域只要在相應

2進製設為

1就可以了。

工作金鑰:我們平常在銀行

atm機上取錢,在金屬密碼鍵盤上輸入密碼,這時候,鍵盤會用工作金鑰把你輸入的密碼加密以後再送出來。這個工作金鑰是鍵盤每天都要去銀行獲取的。這時候你是不是會有疑問,如何保證工作金鑰在網路上傳輸時不會截獲呢?下面引出主金鑰的概念。

主金鑰:是一種儲存在鍵盤裡的金鑰,跟銀行那邊儲存的是一樣的,終端裝置去銀行主機簽到(簽到的概念在下面解釋),銀行會把工作金鑰用這個主金鑰加密以後再傳送,加密後的包注到鍵盤裡以後,鍵盤裡的主金鑰會解開這個密文,解開的密文就是工作金鑰了。

網路分布:

商戶開通銀聯的業務以後,如果採用

tcp/ip

接入的話,需要一台專門與銀聯打交道的伺服器,其它所有終端都通過專用伺服器再接入到銀聯的前置機

,之間採用

socket

連線方式接入。商戶的每個終端都有唯一的終端號,且每天都需要簽到

簽到:舉個通俗的例子,我們每天上班,都要打卡報到,然後再工作,終端裝置想要與銀聯通訊,也要每天都去報到一次,這個報到的過程可以理解為簽到,

交易:

通過下面這幅圖就可以理解了

充正:

沖正,簡單的說就是把銀行主機已經扣的帳衝回去。舉例子來講,我們刷卡進行手機充值,客戶選擇充值金額

-》刷卡

-》輸入密碼

-》傳送扣款請求到銀行主機

-》銀行主機扣款完成

-》進行手機話費充值。這時候如果手機充費充值過程失敗,但是銀行主機的款已經扣了,怎麼辦?這時候可以再向銀行主機發起一次充正請求,把剛剛扣款的賬銷掉。

第一篇文章就先寫到這,先是只講些概念,以後會繼續講解,並盡可能多的貼上**。

IOS開發銀聯支付

我們用的時ios sdk 3.0.1 具體 的檢視文件 前端 比較簡單 後台稍微複雜點 文件上下的sdk版本可能低了 具體的要找銀聯那邊的人要 支援純無卡交易靜態庫,以下簡稱uppayplugin,包含檔案 uppayplugin.h uppayplugindelegate.h libuppaypl...

銀聯支付介面之退貨

接收公司的銀聯支付專案,已經是第三個版本了,現在的是引用了upopsdk.dll,使用了封裝操作的方法,和官網現在的demo操作方式不太一樣,而且找不到太多的文件資料。任務是增加銀聯退貨的介面,查了很多的資料找到了點感覺,經過無數次的嘗試,最後還是執行成功了,下面上介面方法。銀聯閘道器支付退款 新的...

ios開發 整合銀聯3 3 0

專案最近需要整合銀聯,在網上搜了一下發現都並不是最新版的銀聯整合教程,自己摸索了一下,總結寫了下來。一 環境配置 1 3.3.0的銀聯sdk和之前發生了變化,之前是uppayplugin.h uppayplugindelegate.h libuppayplugin.a一共三個檔案,現在精簡成uppa...