通过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读取公交卡的余额和交易记录相关推荐

  1. Android NFC源码读取公交卡信息余额和交易记录

    通过NFC的读模式,读取公交卡的余额和交易记录.可以读取深圳通.羊城通.北京卡.八达通.武汉通等. 源码亲测可用放心下载. 源码下载Eclipse版本:Android NFC源码读取公交卡信息余额和交 ...

  2. android+nfc+公交卡,Android NFC 读取公交卡信息Demo

    [实例简介] 通过NFC的读模式,读取公交卡的余额和交易记录. 支持深圳通.羊城通.北京卡.八达通.武汉通等等 [实例截图] [核心代码] 54db6f91-a3f7-4259-8833-638611 ...

  3. nfc读卡java开发,Android通过NFC读取IC卡示例

    [实例简介] Android通过NFC读取IC卡示例,包含读取.写入. [实例截图] [核心代码] nfc_demo └── nfc_demo ├── app │   ├── app.iml │   ...

  4. android nfc读取公交卡信息_手机NFC可以复制小区用的门禁卡吗?

    很多带有NFC功能的手机和手环,可以用来代替小区门禁卡.公司门禁,以及各类一卡通.(NFC是一种非接触式通讯技术,工作的理论距离是0~10cm)以前出门必备手机.钱包.钥匙三件套,自移动支付出现.使用 ...

  5. android nfc读取公交卡信息_苹果将开放NFC功能,未来iPhone可录公交卡 房卡 门禁卡了...

    责任编辑:XC丨插图来自于网络  苹果NFC入口将开放  在今年十月份开始,欧盟就对苹果手机的 NFC 功能进行了 反垄断市场 调查.认为iPhone具有NFC功能,但是苹果的NFC功能仅限自己的 A ...

  6. android nfc读取公交卡信息_荣耀手机NFC升级了:公交、门禁、支付、饭卡、加密卡还能写卡...

    2019年双十一期间,入手了荣耀magic2手机,其实去年用过一次,今年换了多次还是特别喜欢,主要是麒麟980旗舰CPU,全面滑屏特有面子. 入手的第一时间,自己就启用了手机的钱包功能,手机钱包除了小 ...

  7. NFC 读取公交卡信息

    读了读杭州通 通用卡,记录一下子 参考资料 公共交通IC卡技术规范 公交卡的结构 1.SELECT 选择MF (可不选) 可以不选默认也会被选中,但是可以通过这个指令获得文件控制信息FCI 发送 00 ...

  8. Android Studio NFC读取CPU卡信息

    今天接到一个NFC读CPU卡的需求,做个总结. 总结之前,吐槽一下,一定要查一下测试机支不支持NFC功能,我拿乐视S3开发了一上午,以为哪里出了BUG或者权限没加,查了无数资料,下了十几个demo,死 ...

  9. Android 开发之实现公交卡扣费功能

    对公交卡实现扣费功能主要分以下几个部分: 1.读取公交卡的余额 2.扣费 3.重获Tac 4.获取PSAMID 5.获取相应的参数 首先我们先看下实现这些功能的案例布局 <span style= ...

最新文章

  1. Clojure世界:单元测试
  2. 朴素贝叶斯分类器的应用-转载加我的理解注释
  3. AJAX开发简略 (转)
  4. 二维数组||考试成绩统计: 案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩
  5. 20170824图论选讲部分习题
  6. 阿里研究员:软件测试中的18个难题
  7. 单例模式---懒汉模式与饿汉模式
  8. HP DL380G4服务器前面板指示灯的含义
  9. FFmpeg 音视频同步
  10. TCP提供可靠传输的工作原理和实现过程
  11. 一段不错的话透过公车的玻璃窗突然看见你
  12. VS2022支持.net4.0和.net4.5SDK
  13. 常用 Jacobi 行列式 | 重积分变量替换
  14. android虚拟摇杆
  15. 百度网盘视频加速播放
  16. 自己写一个strcmp函数
  17. php中单选框可以默认选中吗,php selectradio和checkbox默认选择的简单示例
  18. Google Play上架App设置隐私政策声明问题
  19. STM32自定义USB设备开发详细流程讲解及全套资料源码下载(基于libusb)
  20. Linux下tomcat重启

热门文章

  1. HTML与CSS基础笔试和期末题库
  2. java.lang.IllegalStateException错误
  3. 论文阅读笔记之《Learning Deep Correspondence through Prior and Posterior Feature Constancy》
  4. 机器学习模型5——贝叶斯分类器
  5. JS 函数 求圆的面积总结
  6. 基于YoloV5的钢筋计数
  7. 关于防御式编程 (Defensive programming )和安全编码
  8. 卷积神经网络 (GoogLeNet 的灵感)
  9. 奇遇网:WordPress版微信小程序开发:安装使用问题
  10. Python自学编程开发路线图