台灣最大程式設計社群網站
線上人數
732
 
會員總數:244227
討論主題:188566
歡迎您免費加入會員
討論區列表 >> C# >> 聯合信用卡中心刷卡機與POS整合問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
聯合信用卡中心刷卡機與POS整合問題
價值 : 50 QP  點閱數:5913 回應數:5

樓主

宇軒
門外漢
0 5
112 3
發送站內信

公司自行開發 POS系統,公司也是聯合信用卡的特約商店
目前想把POS與刷卡機做整合
向聯合信用卡中心申請了一台開發用的測試機、RS232 連接線,他也提供了〔收銀機連線規格NCCCECRV2.2〕的說明書
刷卡機型號是 Omni vx5770

POS傳輸資料給端末機(刷卡機)為 <STX>[DATA]<ETX><LRC>
LRC: Exclusive-Or All Bytes Of Data & Etx (Stx Not Include).

根據〔收銀機連線規格NCCCECRV2.2〕中的說明,傳個最簡單的 重開機字串、或者是查詢卡號的電文給刷卡機,結果都只收到 0001[Error(主機拒絕或是卡片拒絕)]
說明書只提到需要 36個欄位,長度共400,個拱不同的交易要求,會有不同的必要欄位,例如重開機只需要 ECR Indicator(長度1 起始位置1 內容為 I) 和 Trans Type (長度2 起始位置9 內容 99 (重開機)),其他非必要欄位無論是填入空白 或 0 都無效

我再向聯合信用卡中心的人要求提供範例,不過他們一問三不知,目前請他們幫我向設備廠商要看看有沒有傳輸範例,等待資料中

請問有相關經驗的人可以協助嗎

本篇文章發表於2014-06-03 14:36
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Alex_Lee
捐贈 VP 給 Alex_Lee 檢舉此回應
重開機只需要 ECR Indicator(長度1 起始位置1 內容為 I) 和 Trans Type (長度2 起始位置9 內容 99 (重開機)) <--- 這段應該是 DATA的部分
真正要傳到 刷卡機 應該要是 <STX>[DATA]<ETX><LRC> 的規格
本篇文章回覆於2014-06-03 16:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

宇軒
檢舉此回應
自問自答一下好,經過多方測試發現,問題出在 <LRC> 檢查碼的演算方式,檢查碼產生錯誤,導致刷卡機不接收整串電文

看了這一篇
http://stackoverflow.com/questions/12799122/how-can-i-calculate-longitudinal-redundancy-check-lrc

最後 試到這一個最簡單寫法,才正確無誤

本篇文章回覆於2014-06-09 15:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Hour Li
檢舉此回應
宇軒 ,不好意思,能幫你要範例嗎?
謝謝
本篇文章回覆於2017-03-21 17:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

宇軒
檢舉此回應
不好意思, 一時翻不到當初 Code,我要再找開發人員拿

幾個重點要留意,每家銀行的刷卡機信號傳輸格式都不同,我公司用聯合信用卡中心 與 合庫,就要分別向兩家銀行所需刷卡機的 POS 開發資料,就要開發兩次
還有幾個重點
1. 技術問題不是問銀行,要請銀行提供刷卡機設備廠商的技術聯絡人電話或 Mail
2. 傳輸的資料,未達位數,是要補0 還是留空白,要問清楚,不同銀行與刷卡機機型有不同做法
3. 通訊協定設定,聯合與合庫就不同,聯合是 9600,8,N,1 合庫是 9600,7,E,1
4. 刷卡機有 標準 RS232埠,和 USB 的虛擬RS232埠,USB埠可能預設未開放,要請設備廠商開放,要不然你接usb 試到死你也查不出無法傳輸的原因在哪
5. 最後就是就是本篇上面那個 LRC 檢查位元的寫法,沒弄好,前端字串都正確,刷卡機還是不吃
LRC: Exclusive-Or All Bytes Of Data & Etx (Stx Not Include). 中文是說 將所有字串包含結束位元<ETX> (但不包含起始位元<STX>)做 XOR 轉換,用2樓的寫法就可以
本篇文章回覆於2017-03-24 09:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

冠任
檢舉此回應
不好意思問一下,我最近也在開發聯信刷卡機,我照<STX><DATA><ETX><LRC>分成一次64位元組寫出,但是bulkTransfer有部分回傳-1(寫入失敗),造成刷卡機無回應(無通訊碼回傳),請問當初<STX><DATA><ETX><LRC>是在一個byte array一次寫出嗎?還是一次一個64位元組發送?有特別轉成ASCII編碼嗎? 謝謝!
本篇文章回覆於2018-12-08 18:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.