android通过NFC读取公交卡的余额和交易记录
通过NFC的读模式,读取公交卡的余额和交易记录。这是一个开源的工程,可以读取深圳通、羊城通、北京卡、八达通、武汉通等等。
读取分四个步骤:
1.select PSF (1PAY.SYS.DDF01)
选择支付系统文件,它的名字是1PAY.SYS.DDF01。
byte[] DFN_PSE = { (byte) ‘1’, (byte) ‘P’,
(byte) ‘A’, (byte) ‘Y’, (byte) ‘.’, (byte) ‘S’, (byte) ‘Y’,
(byte) ‘S’, (byte) ‘.’, (byte) ‘D’, (byte) ‘D’, (byte) ‘F’,
(byte) ‘0’, (byte) ‘1’, };
2.选择公交卡应用的名字或者ID
每个公交卡的名字都会不一样。
深圳通:
byte[] DFN_SRV = { (byte) ‘P’, (byte) ‘A’, (byte) ‘Y’,
(byte) ‘.’, (byte) ‘S’, (byte) ‘Z’, (byte) ‘T’ };
武汉通:
byte[] DFN_SRV = { (byte) 0x41, (byte) 0x50,
(byte) 0x31, (byte) 0x2E, (byte) 0x57, (byte) 0x48, (byte) 0x43,
(byte) 0x54, (byte) 0x43, };
羊城通:
byte[] DFN_SRV = { (byte) ‘P’, (byte) ‘A’, (byte) ‘Y’,
(byte) ‘.’, (byte) ‘A’, (byte) ‘P’, (byte) ‘P’, (byte) ‘Y’, };
长安通:
byte[] DFN_SRV = { (byte) 0xA0, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x86, (byte) 0x98,
(byte) 0x07, (byte) 0x01, };
北京市政交通卡ID:
byte[] DFI_EP = { (byte) 0x10, (byte) 0x01 };
其他公交卡:
3.读取余额
发送命令读取电子钱包的余额:
final byte[] cmd = { (byte) 0x80, // CLA Class
(byte) 0x5C, // INS Instruction
(byte) 0x00, // P1 Parameter 1
(byte) 0x02, // P2 Parameter 2
(byte) 0x04, // Le
};
获取到的余额数据是byte[] data, 前4字节合并成int,再除以100(两个小数点),得到的结果就是余额。
4.读取交易记录
一次性读取命令,在不知道有多少条记录的时候,用这个命令:
byte[] cmd = { (byte) 0x00, // CLA Class
(byte) 0xB2, // INS Instruction
(byte) 0x01, // P1 Parameter 1
(byte) 0xC5, // P2 Parameter 2
(byte) 0x00, // Le
};
返回所有的记录byte[] data,每23个字节代表一条记录
也可以一条一条的读取:
cmd = { (byte) 0x00, // CLA Class
(byte) 0xB2, // INS Instruction
(byte) index, // P1 Parameter 1
(byte) 0xC4, // P2 Parameter 2
(byte) 0x00, // Le
};
一条记录是23个字节byte[] data,对其解码如下
data[0]-data[1]:index
data[2]-data[4]:over,金额溢出?
data[5]-data[8]:交易金额
data[9]:如果等于0x06或者0x09,表示刷卡;否则是充值
data[10]-data[15]:刷卡机或充值机编号
data[16]-data[22]:日期String.format(“%02X%02X.%02X.%02X %02X:%02X:%02X”,data[16], data[17], data[18], data[19], data[20], data[21], data[22]);
源码下载地址
百度云盘下载地址:http://pan.baidu.com/s/1lBUmt
android通过NFC读取公交卡的余额和交易记录相关推荐
- Android NFC源码读取公交卡信息余额和交易记录
通过NFC的读模式,读取公交卡的余额和交易记录.可以读取深圳通.羊城通.北京卡.八达通.武汉通等. 源码亲测可用放心下载. 源码下载Eclipse版本:Android NFC源码读取公交卡信息余额和交 ...
- android+nfc+公交卡,Android NFC 读取公交卡信息Demo
[实例简介] 通过NFC的读模式,读取公交卡的余额和交易记录. 支持深圳通.羊城通.北京卡.八达通.武汉通等等 [实例截图] [核心代码] 54db6f91-a3f7-4259-8833-638611 ...
- nfc读卡java开发,Android通过NFC读取IC卡示例
[实例简介] Android通过NFC读取IC卡示例,包含读取.写入. [实例截图] [核心代码] nfc_demo └── nfc_demo ├── app │ ├── app.iml │ ...
- android nfc读取公交卡信息_手机NFC可以复制小区用的门禁卡吗?
很多带有NFC功能的手机和手环,可以用来代替小区门禁卡.公司门禁,以及各类一卡通.(NFC是一种非接触式通讯技术,工作的理论距离是0~10cm)以前出门必备手机.钱包.钥匙三件套,自移动支付出现.使用 ...
- android nfc读取公交卡信息_苹果将开放NFC功能,未来iPhone可录公交卡 房卡 门禁卡了...
责任编辑:XC丨插图来自于网络 苹果NFC入口将开放 在今年十月份开始,欧盟就对苹果手机的 NFC 功能进行了 反垄断市场 调查.认为iPhone具有NFC功能,但是苹果的NFC功能仅限自己的 A ...
- android nfc读取公交卡信息_荣耀手机NFC升级了:公交、门禁、支付、饭卡、加密卡还能写卡...
2019年双十一期间,入手了荣耀magic2手机,其实去年用过一次,今年换了多次还是特别喜欢,主要是麒麟980旗舰CPU,全面滑屏特有面子. 入手的第一时间,自己就启用了手机的钱包功能,手机钱包除了小 ...
- NFC 读取公交卡信息
读了读杭州通 通用卡,记录一下子 参考资料 公共交通IC卡技术规范 公交卡的结构 1.SELECT 选择MF (可不选) 可以不选默认也会被选中,但是可以通过这个指令获得文件控制信息FCI 发送 00 ...
- Android Studio NFC读取CPU卡信息
今天接到一个NFC读CPU卡的需求,做个总结. 总结之前,吐槽一下,一定要查一下测试机支不支持NFC功能,我拿乐视S3开发了一上午,以为哪里出了BUG或者权限没加,查了无数资料,下了十几个demo,死 ...
- Android 开发之实现公交卡扣费功能
对公交卡实现扣费功能主要分以下几个部分: 1.读取公交卡的余额 2.扣费 3.重获Tac 4.获取PSAMID 5.获取相应的参数 首先我们先看下实现这些功能的案例布局 <span style= ...
最新文章
- Clojure世界:单元测试
- 朴素贝叶斯分类器的应用-转载加我的理解注释
- AJAX开发简略 (转)
- 二维数组||考试成绩统计: 案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩
- 20170824图论选讲部分习题
- 阿里研究员:软件测试中的18个难题
- 单例模式---懒汉模式与饿汉模式
- HP DL380G4服务器前面板指示灯的含义
- FFmpeg 音视频同步
- TCP提供可靠传输的工作原理和实现过程
- 一段不错的话透过公车的玻璃窗突然看见你
- VS2022支持.net4.0和.net4.5SDK
- 常用 Jacobi 行列式 | 重积分变量替换
- android虚拟摇杆
- 百度网盘视频加速播放
- 自己写一个strcmp函数
- php中单选框可以默认选中吗,php selectradio和checkbox默认选择的简单示例
- Google Play上架App设置隐私政策声明问题
- STM32自定义USB设备开发详细流程讲解及全套资料源码下载(基于libusb)
- Linux下tomcat重启
热门文章
- HTML与CSS基础笔试和期末题库
- java.lang.IllegalStateException错误
- 论文阅读笔记之《Learning Deep Correspondence through Prior and Posterior Feature Constancy》
- 机器学习模型5——贝叶斯分类器
- JS 函数 求圆的面积总结
- 基于YoloV5的钢筋计数
- 关于防御式编程 (Defensive programming )和安全编码
- 卷积神经网络 (GoogLeNet 的灵感)
- 奇遇网:WordPress版微信小程序开发:安装使用问题
- Python自学编程开发路线图