有没有办法将读卡器连接到我的网络应用程序(javascript),以便用户不必手动输入信用卡信息?
此网络应用程序用于在商店购买产品。用户点击他想要购买的商品,然后他在读卡器中刷信用卡,他将收到收据。
答案 0 :(得分:39)
实际上,由于简单的USB读卡器充当键盘输入设备,因此可能。由于它充当键盘输入,一旦输入框处于焦点,您可以刷卡,使用一些漂亮的jQuery等将其推送到隐藏字段,然后从那里处理它。
Please see my answer on that question that Maris linked to.
编辑:2/2016
我使用非常简单的jQuery实现创建了一个GitHub Gist。
答案 1 :(得分:5)
正如另一个答案所提到的,条形码扫描仪或读卡器就像键盘一样工作。您可以附加一个监听器,例如在整个文档中:
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
}
}
}
如果您愿意,可以在文本框上附加监听器。刷卡时确保它是聚焦的。
答案 2 :(得分:-1)
我认为这就是它的工作原理。信用卡将为您提供您在计算机上安装的软件。该软件在本地端口上公开服务。
您的网络应用程序会向本地服务发布请求。您提出的请求可能只包括您要收取的金额以及一些身份验证令牌以对服务进行身份验证。
之后信用卡终端将处理收费,并在成功时返回参考号或在失败时返回消息。
正如您所看到的,此过程不会将信用卡信息公开给您的网络应用程序。只是通知交易是否获得批准,以便您可以继续或拒绝处理订单。
答案 3 :(得分:-8)
简短的回答是 - 否。您可以在How to link access card reader with PHP?
中找到更多解释