[英]Connect a credit card reader to web application?
有没有办法将读卡器连接到我的网络应用程序(javascript),以便用户不必手动输入信用卡信息?
此网络应用程序用于在商店购买产品。 用户点击他想要购买的商品,然后他在读卡器中刷信用卡,他将收到收据。
实际上,由于简单的USB读卡器充当键盘输入设备这是可能的。 由于它充当键盘输入,一旦输入框处于焦点,您可以刷卡,使用一些漂亮的jQuery等将其推送到隐藏字段,然后从那里处理它。
编辑:2/2016
我用一个非常简单的jQuery实现创建了一个GitHub Gist 。
正如另一个答案所提到的,条形码扫描器或读卡器就像键盘一样工作。 您可以附加一个监听器,例如在整个文档中:
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
}
}
}
如果需要,可以在文本框上附加侦听器。 刷卡时确保它是聚焦的。
我认为这就是它的工作原理。 信用卡将为您提供您在计算机上安装的软件。 该软件在本地端口上公开服务。
您的Web应用程序将POST请求到该本地服务。 您提出的请求可能只包括您要收取的金额以及一些身份验证令牌以对服务进行身份验证。
在此之后,信用卡终端将处理收费并且在成功时返回参考号或在失败时返回消息。
如您所见,此过程不会将信用卡信息公开给您的Web应用程序。 只是通知交易是否获得批准,以便您可以继续或拒绝处理订单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.