android通过NFC读取公交卡的余额和交易记录

标签: android nfc 公交 | 发表时间:2013-11-26 01:16 | 作者:menghnhhuan
出处:http://blog.csdn.net

通过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

作者:menghnhhuan 发表于2013-11-25 17:16:14 原文链接
阅读:104 评论:0 查看评论

相关 [android nfc 公交] 推荐:

android通过NFC读取公交卡的余额和交易记录

- - CSDN博客移动开发推荐文章
通过NFC的读模式,读取公交卡的余额和交易记录. 这是一个开源的工程,可以读取深圳通、羊城通、北京卡、八达通、武汉通等等. 选择支付系统文件,它的名字是1PAY.SYS.DDF01. 2.选择公交卡应用的名字或者ID. 发送命令读取电子钱包的余额:. 获取到的余额数据是byte[] data, 前4字节合并成int,再除以100(两个小数点),得到的结果就是余额.

Google+ Android 应用已支持 NFC [视频]

- 太平犬 - 谷安——谷奥Android专题站
Google 喜欢将自己不同的技术和服务搞到一起,取长补短彼此促进,看起来 Google+ 也不例外. 通过带有 NFC 的手机,Google+ 应用可以读取 NFC 标签从而快速分享内容. 当然直到 NFC 普及之前估计难火热起来. Google 已经宣传 NFC(near-field communications/近场通信)有一段时间,他们还推出了基于 NFC 的 Google Wallet(Google 钱包)服务.

基于Android平台的NFC技术的应用实现

- - ITeye博客
      近距离无线通信(NFC)是一种简单的,非触控式的互联技术,可以让消费者简单直观的交换信息,访问内容和服务,在电子消费领域有着广泛的应用. NFC整合非接触式读卡器、非接触式智能卡和点对点(Peer-to-Peer)通信功能,为消费者开创全新便捷生活方式.      NFC终端有三种工作模式:.

Google 推出「Android Beam」基於 NFC 技術的手機分享應用(影片)

- 小趴 八足趴 八足 ramener - Engadget 中文版
其實 Google 早就已經做好在行動裝置平台擁抱 NFC 的準備,由電子錢包開始現在來到了手機間的分享技術. 在 Samsung 於香港的發表會上,這個在 Ice Cream Sandwich 系統中稱為「Android Beam」的全新功能,其實與 HP 的 Touch-to-share 功能十分相似.

Google 推出「Android Beam」基于 NFC 技术的手机分享应用(影片)

- austin - Engadget 中国版
其实 Google 早就已经做好在行动装置平台拥抱 NFC 的准备,由电子货币包开始现在来到了手机间的分享技术. 在 Samsung 于香港的发表会上,这个在 Ice Cream Sandwich 系统中称为「Android Beam」的全新功能,其实与 HP 的 Touch-to-share 功能十分相似.

率先进入非接触支付时代 伦敦公交车系统全面支持NFC

- - 爱活网最新资讯
虽然手机上的近场通讯(NFC)已经被各大生厂商炒得火热,不过在现实生活中,这项技术似乎距离大众应用似乎还有些距离. 近日,伦敦运输局通过电子邮件对外宣布,伦敦地区的8500辆公交车开始支持NFC支付,为伦敦运输的非接触支付迈出了第一步. 乘客只需要通过支持NFC卡的Oyster电子钱包与自己的银行进行挂钩,就可以像信用卡或者借记卡那样在伦敦的公交车系统上进行非接触支付.

自制 Arduino NFC 实验

- Nickcheng - Engadget 中国版
Google 大神刚刚发布了非接触式钱包挑战金流,不过这种金钱游戏离市井小民总是有一段距离,况且不是每个 Android 手机都有NFC 功能. 不过自己玩玩总可以:Joe Desbonnet 用 Arduino 开发板,作了个 NFC 的小小实验:. 一台有电子罗盘的 Android 行动装置(如图中使用的 HTC desire).

NFC 接近爆发边缘

- 请叫我火矞弟 - 爱范儿 · Beats of Bits
种种迹象表明,NFC 接近爆发的边缘,我们很快将享受到 NFC 所带来的便利与趣味. 支持 NFC 的 Android 手机将越来越多. NFC 之所以被人质疑,是因为缺乏手机厂商的支持. 最早下注 NFC 的诺基亚,其未来的智能手机平台 WP7 暂时不会有 NFC;而目前为止 iOS 平台的设备都不支持 NFC 功能,苹果也没有宣布支持 NFC 的计划;Android 上支持 NFC 的手机也寥寥可数.

没 NFC?没问题!带 NFC 发射器的 micro SD 卡 [视频]

- CasparZ - 谷安——谷奥Android专题站
可能你觉得 Google Wallet 是一个很不错的东西,不过自己却没有支持 NFC 的手机(比如说 Nexus S),不过现在好了. Netcom 的公司展示了带有 NFC 发射器的 micro SD 卡,毫无疑问,只要将该 micro SD 卡插入到手机中就可以享用 NFC 功能了. 只要将这个 micro SD 卡插入到你的非 NFC 设备即可.

创意:给 iPhone 4 加装 NFC 功能

- Xiao T…… - 爱范儿 · Beats of Bits
是否羡慕 Nexus S 上的 NFC (近场通信)功能呢. 苹果 iPhone 用户也需要它. 看看坊间的传言吧,NFC 很可能成为下一代 iPhone 的标准配置. 但是现在呢,iPhone 4 能够享受刷卡的快感. 一些银行已经推出具有 NFC 功能的迷你信用卡,它被用作超市和公共交通的小额支付.