2011-03-09 44 views
16

有沒有辦法將讀卡器連接到我的Web應用程序(javascript),以便用戶不必手動輸入信用卡信息?將信用卡閱讀器連接到Web應用程序?

此Web應用程序用於購買商店的產品。用戶點擊他想購買的物品,然後在讀卡器上刷信用卡,他會得到一張收據。

+2

MārisKiseļovs'的回答是不正確的。請將@AngeloS回覆標記爲正確答案。 – 2012-12-28 16:36:56

回答

-6

簡短的回答是 - 不,你可以找到在How to link access card reader with PHP?

+9

Downvoted。 看下面的答案,這是完全不正確的。 – SobiborTreblinka 2014-06-27 17:04:28

+0

如果您選擇表單域以使其處於活動狀態,然後刷信用卡;該字段將填充卡數據。當字段文本更改時,可以觸發JavaScript來自動填充表單。 – 2015-06-11 20:24:23

30

其實,這是可能的一些更多的解釋,由於事實簡單的USB讀卡器作爲鍵盤的輸入設備。由於它充當鍵盤輸入,一旦輸入框處於焦點狀態,您可以刷卡,使用一些漂亮的jQuery等將其推送到隱藏字段,然後從那裏處理它。

Please see my answer on that question that Maris linked to.

編輯:二千〇一十六分之二

我創建了一個GitHub Gist一個非常簡單的jQuery的實現。

+0

隱藏字段仍然允許用戶輸入,如果他想要的話。他只是看不到它。 – 2017-12-18 19:42:13

4

正如在其他答案中提到的那樣,條形碼掃描儀或讀卡器的工作原理類似於鍵盤。您可以在整個文檔中附加一個監聽器,例如:

document.onkeypress = function(e) { 
    e = e || window.event; 
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode; 
    // store it , in this example, i use localstorage 
    if(localStorage.getItem("card") && localStorage.getItem("card") != 'null') { 
     // append on every keypress 
     localStorage.setItem("card", localStorage.getItem("card") + String.fromCharCode(charCode)); 
    } else { 
     // remove localstorage if it takes 300 ms (you can set it) 
     localStorage.setItem("card", String.fromCharCode(charCode)); 
     setTimeout(function() { 
      localStorage.removeItem("card"); 
     }, 300); 
    } 
    // when reach on certain length within 300 ms, it is not typed by a human being 
    if(localStorage.getItem("card").length == 8) { 
     // do some validation 
     if(passedonvalidation){ 
      // do some action 
     } 
    } 
} 

您可以在文本框連接監聽器,如果你想。確保在刷卡時它是專注的。

+0

您需要檢查用戶是否將代碼複製/粘貼到輸入,只需檢查CTRL和SHIFT修飾符是否打開,如果是,則清除該字段。否則,用戶只需通過粘貼即時「鍵入」即可 – 2017-12-18 19:43:56

-2

這是我的想法。信用卡將爲您提供一個您在機器上安裝的軟件。該軟件在本地端口上公開服務。

您的Web應用程序將POST請求發送到本地服務。您提出的請求可能只包含您要收取的金額以及一些認證令牌,以便根據服務進行認證。

之後,信用卡終端將處理收費並返回成功時的參考號碼或失敗時的消息。

正如您所看到的,此過程不會將信用卡信息暴露給您的Web應用程序。它只是得到通知交易是否被批准,所以你可以繼續或拒絕處理訂單。

相關問題