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

通过ISO 7816 APDU指令读取Visa卡卡号及有效期遇6700错误求助

问题分析:6700响应码原因

6700表示APDU指令的长度参数(LC)与实际数据长度不匹配。你当前发送的Visa卡GPO指令(80A8000012...)中,LC字段是12(十进制18),但后续的TLV数据实际长度不符合这个值,导致卡片返回长度错误。

Visa卡读取卡号&有效期的可行APDU指令列表

以下是针对Visa EMV卡验证有效的指令流程,分三种常用方式:

方式一:EMV标准流程(GPO + 读记录)

步骤1:选择Visa应用(SELECT AID)

Visa默认AID为A0000000031010,发送指令:

00A4040007A000000003101000

响应码应为9000,表示应用选择成功。

步骤2:发送GET PROCESSING OPTIONS(GPO)

使用长度匹配的标准指令(无PDOL数据场景):

80A8000002830000
  • 说明:LC为02,对应后续8300(表示无PDOL数据),长度严格匹配,不会触发6700。
    响应码应为9000,返回的TLV包含应用交互控制、文件控制信息等。

步骤3:读取记录获取卡号与有效期

Visa卡的卡号(5A标签)和有效期(5F24标签)通常在1号记录的14号文件中,发送读记录指令:

00B2011400

从响应中提取5A值为卡号,5F24值为有效期(格式为YYMM,可按需转换为MMYY)。

方式二:直接读取指定标签(GET DATA)

若卡片支持,SELECT AID成功后可直接读取目标标签:

步骤1:选择Visa应用(同方式一)

00A4040007A000000003101000

步骤2:读取卡号(5A标签)

00CA005A00

响应中5A对应的值即为卡号。

步骤3:读取有效期(5F24标签)

00CA005F2400

响应中5F24对应的值为有效期(格式YYMM)。

方式三:兼容老Visa卡的指令

部分非EMV老卡可尝试以下流程:

步骤1:选择主文件

00A40000023F0000

步骤2:选择卡号文件

00A4010002000100

步骤3:读取卡号

00B000000F

返回的前16字节为卡号,按需截取即可。

步骤4:读取有效期

00B0001E02

返回的2字节为有效期(格式YYMM)。

注意事项
  • 所有指令必须保证LC字段与后续数据长度严格匹配,避免再次触发6700错误。
  • 若默认AID选择失败,可尝试A000000003101001或咨询卡片发行方获取正确AID。
  • 处理响应时,需先确认响应码为9000,再提取对应标签值。

内容的提问来源于stack exchange,提问作者maxmvaas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:55:18