You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP/JavaScript或通用代码实现EMV卡读写(含SLE4442卡场景)

实现SLE4442卡+ACR39U读写器的网页交互方案

PHP相关实现思路

PHP运行在服务器端,无法直接访问客户端硬件,所以要分两种场景处理:

  • 网页端交互:必须结合前端浏览器API(如WebUSB/WebHID)读取卡片数据,再通过AJAX/POST请求将数据传给PHP后端处理。
  • 服务器端批量操作:可通过PHP调用系统命令,借助PC/SC标准工具实现:
    • 依赖pcscd守护进程和gppcscconnectionplugin这类命令行工具,用exec()或shell_exec()封装调用逻辑,比如读取卡片序列号:
      // 调用pcsc工具读取卡片序列号(需根据实际工具调整参数)
      $output = shell_exec('gppcscconnectionplugin -r serial');
      $serialNumber = preg_match('/Serial Number: (\w+)/', $output, $matches) ? $matches[1] : '';
      

其他语言/技术方案

  • JavaScript(前端):
    • 使用WebUSB API(Chrome/Edge支持)直接在浏览器中与ACR39U通信,无需桌面应用。ACR39U兼容WebUSB,可编写代码发送APDU指令与SLE4442卡交互:
      async function connectReader() {
        // 指定ACR39U的Vendor ID请求设备授权
        const device = await navigator.usb.requestDevice({ filters: [{ vendorId: 0x072f }] });
        await device.open();
        await device.selectConfiguration(1);
        await device.claimInterface(0);
        // 发送读取SLE4442卡数据块的APDU指令(需参考卡片手册调整)
        await device.transferOut(1, new Uint8Array([0x00, 0xB0, 0x00, 0x00, 0x10]));
        const data = await device.transferIn(0, 256);
        console.log(new Uint8Array(data.data));
      }
      
    • 若浏览器不支持WebUSB,可替换为WebHID API,实现逻辑类似。
  • Python:
    • 使用pyscard库(基于PC/SC标准),适合编写本地服务,通过HTTP接口与网站后端中转卡片数据:
      from smartcard.System import readers
      from smartcard.util import toHexString
      
      reader = readers()[0]
      connection = reader.createConnection()
      connection.connect()
      
      # 发送读取卡片数据的APDU指令
      apdu = [0x00, 0xB0, 0x00, 0x00, 0x10]
      data, sw1, sw2 = connection.transmit(apdu)
      print("读取的数据:", toHexString(data))
      
  • C#/.NET:
    • 借助PCSC NuGet包,基于PC/SC标准实现读写逻辑,适合编写Windows本地服务或桌面应用,再通过API与网站交互。

关键注意事项

  • 网页直接操作读卡器需要用户在浏览器中授权硬件访问,仅部分现代浏览器支持WebUSB/WebHID。
  • SLE4442卡的读写需遵循其专属APDU指令集,必须参考卡片数据手册编写正确指令。
  • 优先选择基于PC/SC标准的工具或库,ACR39U作为合规读卡器,大部分相关库都能兼容。

内容的提问来源于stack exchange,提问作者elie.irani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:30:55