标签归档:电子钱包

M1卡做电子钱包

M1卡做电子钱包使用时,要将某个块按规定格式初始化为数值块

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

数值

数值

数值

Adr

Adr

Adr

Adr

0字节是数值最低字节。

初始数值块是用写命令把数据写到块,例如第8块初始化为数值块,数值为0,用写块命令写入

0x00 0x00 0x00 0x00 0xff 0xff 0xff 0xff 0x00 0x00 0x00 0x00 0x08 0xf7 0x08 0xf7

然后可以用DECREMENT INCREMENT TRANSFER RESTORE命令对数值块进行操作。

INCREMENT 对存储在数值块中的数值做加法操作,并将结果存到临时数据寄存器

DECREMENT 对存储在数值块中的数值做减法操作,并将结果存到临时数据寄存器

TRANSFER 将临时数据寄存器的内容写入数值块

RESTORE 将数值块内容存入临时数据寄存器

电子钱包增值函数流程

询卡-防冲突-选卡-密码验证-增值-传送-挂起

电子钱包减值函数流程

询卡-防冲突-选卡-密码验证-减值-传送-挂起

RESTORE命令是在一个扇区内数值块进行拷贝时用的,一般钱包数据需要备份在同一扇区的不同块中,则备份和恢复时都要用到RESTORE命令。

数值时一个带符号4字节值,这个值的最低一个字节保存在最低的地址中,所以增加1时,4字节增加的值数组应该是0x01 0x00 0x00 0x00,不是0x00 0x00 0x00 0x01