首页 > 其他分享 >5.ETC卡 PSAM卡消费流程(转载)

5.ETC卡 PSAM卡消费流程(转载)

时间:2023-09-25 23:13:22浏览次数:33  
标签:字节 psam PSAM send ETC 卡消费 recv cpu card

消费流程

打开读卡器
0
选择psam卡槽1

复位psam卡

读取psam卡0015文件
psam card send: 00b095000E
psam card recv: 23010101000000212241010101019000
psam卡序列号: 23010101000000212241
psam卡版本号: 01
密钥卡类型 : 01
发卡方自定义FCI数据 : 0101
读取psam卡 终端机编号
psam card send: 00b0960006
psam card recv: 012300033d119000

终端机编号: 012300033d11

打开用户卡

读取用户卡0016文件
cpu card send: 00B0960037
cpu card recv: 0000ceb4b7a2d0d000000000000000000000000000003838383838383838000000000000000000000000000000000000000000000000009000
0000ceb4b7a2d0d000000000000000000000000000003838383838383838000000000000000000000000000000000000000000000000009000
持卡人身份标识  1字节  : 00
本系统职工标识  1字节  : 00
持卡人姓名     20字节  : ceb4b7a2d0d00000000000000000000000000000
持卡人证件号码  32字节  : 3838383838383838000000000000000000000000000000000000000000000000
持卡人证件类型  1字节  : 00

进入用户卡目录:00A40000021001
cpu card send: 00A40000021001
cpu card recv: 6f47840a5041592e4554432e4e4da5399f0801029f0c32c1fabdad230100011740230113052309020000112019110820191107000000000000000000000000000000ffffff0209ffff9000
标识符1: 32c1fabd
标识符2: 0113052309020000
FCI Error_application_code1: 0113052309020000
FCI Error_city_code1: 32c1fabd32c1fabd

读取用户卡0015文件
cpu card send: 00B095002B
cpu card recv: c1fabdad2301000117402301130523090200001120191108201911070000000000000000000000000000009000
c1fabdad2301000117402301130523090200001120191108201911070000000000000000000000000000009000
发卡方标识     8字节                      : c1fabdad23010001
卡片类型       1字节 22:储值卡  23:记账卡  : 17
卡片版本号     1字节                      : 40
卡片网络编号   2字节                      : 2301
卡片内部编号   8字节                      : 1305230902000011
启用时间       4字节                      : 20191108
到期时间       4字节                      : 20191107
车牌号码       12字节 GB2312编码          : 000000000000000000000000
用户类型       1字节                      : 00
车牌颜色       1字节                      : 00
车型           1字节                      : 009000
预留           3字节                      : 
卡片厂商       1字节                      : 
发行结构编号   1字节                      : 
预留                                      : 
application_code: 1305230902000011
city_code: c1fabdadc1fabdad

用户卡取余额命令
cpu card send: 805c000204
cpu card recv: 7ffffff29000

消费金额: 单位为分: 00000001
终端向卡片发送消费初始化命令
密钥索引: 01
cpu card send: 805001020B0100000001012300033d11
cpu card recv: 7ffffff2000d00000001009a2138279000
电子钱包余额  4字节: 7ffffff2
脱机交易序号  2字节: 000d
透支限额     3字节: 000000
密钥版本号   1字节: 01
算法标识     1字节: 00
伪随机数     4字节: 9a213827

psam卡选择 df01 目录
psam card send: 00a4000002df01
psam card recv: 6f258405a000000003a51c9f0c190100ffffffffffffff23ffffffffffffff20160531202012319000

读取psam卡 DF01 目录下的0017文件
psam card send: 00b0970019
psam card recv: 0100ffffffffffffff23ffffffffffffff20160531202012319000
密钥索引号: 01
发行方标识: 00ffffffffffffff
应用区域标识: 23ffffffffffffff
应用启用日期: 20160531
应用有效日期: 20201231

PSAM卡消费初始化
time =  20200529112007
INIT SAM FOR PURCHASE 计算MAC1
消费密钥版本号:  01
消费密钥算法标识: 00
交易类型标识(第16个字节) 06
psam card send: 80700000249a213827000d00000001062020052911200701001305230902000011c1fabdadc1fabdad
psam card recv: 0000000214fc8c5e9000
终端脱机交易序号: 00000002
报文校验码 MAC1: 14fc8c5e

用户卡消费
应用消费交易
cpu card send: 805401000f000000022020052911200714fc8c5e
cpu card recv: d65d25f90ef7e7559000
TAC : d65d25f9
MAC2: 0ef7e755

 PSAM卡消费(验证MAC2):
psam card send: 80720000040ef7e755
psam card recv: 9000
psam check mac2 success

Process finished with exit code 0

ETC卡复合消费流程:

打开读卡器
0
选择psam卡槽1

复位psam卡

读取psam卡0015文件
psam card send: 00b095000E
psam card recv: 23010101000000212241010101019000
psam卡序列号: 23010101000000212241
psam卡版本号: 01
密钥卡类型 : 01
发卡方自定义FCI数据 : 0101
读取psam卡 终端机编号
psam card send: 00b0960006
psam card recv: 012300033d119000

终端机编号: 012300033d11

打开用户卡

读取用户卡0016文件
cpu card send: 00B0960037
cpu card recv: 0000ceb4b7a2d0d000000000000000000000000000003838383838383838000000000000000000000000000000000000000000000000009000
0000ceb4b7a2d0d000000000000000000000000000003838383838383838000000000000000000000000000000000000000000000000009000
持卡人身份标识  1字节  : 00
本系统职工标识  1字节  : 00
持卡人姓名     20字节  : ceb4b7a2d0d00000000000000000000000000000
持卡人证件号码  32字节  : 3838383838383838000000000000000000000000000000000000000000000000
持卡人证件类型  1字节  : 00

进入用户卡目录:00A40000021001
cpu card send: 00A40000021001
cpu card recv: 6f47840a5041592e4554432e4e4da5399f0801029f0c32c1fabdad230100011740230113052309020000112019110820191107000000000000000000000000000000ffffff0209ffff9000
标识符1: 32c1fabd
标识符2: 0113052309020000
error_application_code1: 0113052309020000
error_city_code1: 32c1fabd32c1fabd

读取用户卡0015文件
cpu card send: 00B095002B
cpu card recv: c1fabdad2301000117402301130523090200001120191108201911070000000000000000000000000000009000
c1fabdad2301000117402301130523090200001120191108201911070000000000000000000000000000009000
发卡方标识     8字节                      : c1fabdad23010001
卡片类型       1字节 22:储值卡  23:记账卡  : 17
卡片版本号     1字节                      : 40
卡片网络编号   2字节                      : 2301
卡片内部编号   8字节                      : 1305230902000011
启用时间       4字节                      : 20191108
到期时间       4字节                      : 20191107
车牌号码       12字节 GB2312编码          : 000000000000000000000000
用户类型       1字节                      : 00
车牌颜色       1字节                      : 00
车型           1字节                      : 009000
预留           3字节                      : 
卡片厂商       1字节                      : 
发行结构编号   1字节                      : 
预留                                      : 
application_code: 1305230902000011
city_code: c1fabdadc1fabdad

用户卡  读记录文件 19文件
cpu card send: 00b201cc00
cpu card recv: aa29000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627299000

用户卡取余额命令
cpu card send: 805c000204
cpu card recv: 7ffffff19000

消费金额: 单位不知道: 00000001
终端向卡片发送消费初始化命令
INITIALIZE FOR CAPP PURCHASE  初始化复合消费交易
03 和 02 是干嘛的? 80 50 03 02 表示指令是复合消费
密钥索引: 01
cpu card send: 805003020B0100000001012300033d11
cpu card recv: 7ffffff1000e00000001004b156b909000
电子钱包余额  4字节: 7ffffff1
脱机交易序号  2字节: 000e
透支限额     3字节: 000000
密钥版本号   1字节: 01
算法标识     1字节: 00
伪随机数     4字节: 4b156b90

用户卡写0019复合记录,根据复合应用类型标识符写
UPDATE CAPP CACHE  复合消费交易中更新复合应用数据缓存
cpu card send: 80dcaac82bAA29000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262729
cpu card recv: 9000

psam卡选择 df01 目录
psam card send: 00a4000002df01
psam card recv: 6f258405a000000003a51c9f0c190100ffffffffffffff23ffffffffffffff20160531202012319000

读取psam卡 DF01 目录下的0017文件
psam card send: 00b0970019
psam card recv: 0100ffffffffffffff23ffffffffffffff20160531202012319000
密钥索引号: 01
发行方标识: 00ffffffffffffff
应用区域标识: 23ffffffffffffff
应用启用日期: 20160531
应用有效日期: 20201231

PSAM卡消费初始化
time =  20200529112851
INIT SAM FOR PURCHASE 计算MAC1
消费密钥版本号:  01
消费密钥算法标识: 00
用户卡应用序列号: 
发行方标识
交易类型标识 09
交易类型标识(第16个字节) 09
psam card send: 80700000244b156b90000e00000001092020052911285101001305230902000011c1fabdadc1fabdad
psam card recv: 000000035cb944579000
终端脱机交易序号: 00000003
报文校验码 MAC1: 5cb94457

用户卡复合消费
DEBIT FOR CAPP PURCHASE  复合应用消费交易
cpu card send: 805401000f00000003202005291128515cb94457
cpu card recv: 53d2fbbff5f55c209000
TAC : 53d2fbbf
MAC2: f5f55c20
psam card send: 8072000004f5f55c20
psam card recv: 9000
psam check mac2 success

Process finished with exit code 0

 

02 应该是表示是 电子钱包

 

 

标签:字节,psam,PSAM,send,ETC,卡消费,recv,cpu,card
From: https://www.cnblogs.com/icaowu/p/17729083.html

相关文章

  • PSAM嵌入式驱动——概念
    0.前序刚好最近忙了几项目的部分驱动都与PSAM相关,且不同项目硬件设计原因,涉及软件纯模拟PSAM驱动和硬件USART支持ISO7816的硬件PSAM驱动,顺便边做边总结,纯个人理解,方便交流,其中许多内容也是从别人摘录而来便于理解。1.背景PSAM卡是一种安全模块,用于验证用户卡的合法性,同时保护终......
  • PSAM嵌入式驱动——原理
    前言本部分内容是前一篇《PSAM嵌入式驱动——概念》的后续篇,本节主要是PSAM做驱动开发要了解的一些基本原理,在此一一阐述,部分内容也是借鉴前辈基础上,加上实践中整理及理解,与项目实际密切相关。一、PSAM基本交易过程 一般含PSAM的交易终端交互过程如上图,对于嵌入式驱动而言,前......
  • 3.PSAM卡操作
    0082008400C0008800B000B200A400/04D600/04DC002000B0读二进制文件00B096000600B0标识96文件标识00起始位置06读取长度00A4选择文件目录00A4000002DF01选DF01目录00A4标识00固定00固定02固定DF01目录名称801A秘钥分散801A590310FF......
  • 2.ETC用户卡文件信息
    文件结构 .0016文件持卡人基本数据文件结构 0015文件卡内信息 0019文件复合消费过程文件 命令集 00A4选目录选1001:00A4000002100100A4选文件00表示按文件标识选择00表示一个或者仅有一个02表示后面内容的长度1001表示1001目录00B0读二进......
  • LeetCode 918. 环形子数组的最大和
    环形子数组的最大和(medium)题目链接:918.环形子数组的最大和题目描述:给定一个长度为n的环形整数数组nums,返回nums的非空子数组的最大可能和。环形数组意味着数组的末端将会与开头相连呈环状。形式上,nums[i]的下一个元素是nums[(i+1)%n],nums[i]的前一个元素......
  • LeetCode 53. 最大子数组和
    最大子数组和(medium)题目链接:53.最大子数组和题目描述:给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1]的和最大......
  • leetcode21. 合并两个有序链表
    合并两个有序链表题目链接21.合并两个有序链表将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0......
  • [LeetCode] 1353. Maximum Number of Events That Can Be Attended 最多可以参加的会
    Youaregivenanarrayof events where events[i]=[startDayi,endDayi].Everyevent i startsat startDayi andendsat endDayi.Youcanattendanevent i atanyday d where startTimei<=d<=endTimei.Youcanonlyattendoneeventatanytime ......
  • etcd 集群安装
    1.环境准备下载安装包:https://github.com/etcd-io/etcd/releases/这里下载的安装包为:etcd-v3.5.9-linux-amd64.tar.gz,即我们当前安装的etcd版本为:3.5.9这里有3个节点,分别为:10.23.0.21ec110.23.0.22ec210.23.0.23ec32.安装配置首先在所有机器安装etcd如下:tar-x......
  • #yyds干货盘点# LeetCode程序员面试金典:除自身以外数组的乘积
    题目:给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32位 整数范围内。请 不要使用除法,且在 O(n) 时间复杂度内完成此题。 示......