# 数字城市一卡通(City Union)
#### 适用范围
根据 GB/T 31778-2015 《数字城市一卡通互联互通 通用技术要求》的表述,数字城市一卡通适用于互联互通城市间综合交通(公共汽车、地铁、轻轨、轮渡、出租车、公共自行车)、公用事业缴费、风景园林、社区/园区应用、停车场管理等领域应用。
目前,该标准覆盖的城市和项目为:
> 上海
> 天津
> 澳门(特别行政区)
> 浙江:宁波、绍兴、湖州、台州、舟山、长兴、金华、温州、义乌、嘉兴
> 江苏:常熟、昆山、淮安、江阴、无锡、南通、泰州、宜兴、太仓、盐城
> 甘肃:兰州、白银、华亭
> 江西:南昌、九江、鹰潭、赣州、上饶
> 湖南:永州、株洲、 湘潭、望城
> 辽宁:葫芦岛、锦州、抚顺、沈阳、营口、兴城、铁岭、本溪
> 四川:江油、自贡、西昌、阆中
> 福建:福州、龙岩、泉州、莆田、晋江
> 海南:三亚
> 广东:湛江、珠海
> 吉林:辽源、松原
> 新疆:克拉玛依
> 陕西:榆林、渭南、咸阳、杨凌
> 河南:驻马店、郑州、南阳、漯河、荥阳、新郑、平顶山
> 贵州:凯里、遵义、都匀
> 云南:昆明、大理
> 湖北:十堰、潜江
> 安徽:淮南、阜阳
> 山东:临沂
> 河北:邯郸
>
> 互联互通项目:招商通、全国景区一卡通、无锡灵山、社区有我、北京未来科学城、天津海河游轮
需要指出的是, 以上列出的城市/项目,仅表示该城市/项目使用了由中华人民共和国住房和城乡建设部生成的密钥,并不意味着所发行的卡片可以互通。例如,上海发行的紫色卡,虽然采用了该标准,但仅与江苏、浙江的部分城市互通。
#### 文件目录
互联互通应用的基本文件目录应至少包括下图中所有文件:
注意:由于标准发布于2015年,对于早期参与到该标准的城市,卡内数据可能不遵守这个规范,但可以保证的是,0x15和0x18文件总是存在,其中0x18里包含了所有类型的交易记录。
#### 密钥类型
密钥名称 | 密钥代码 | 密钥标识 | 分散级别 | 密钥作用 |
应用主控子密钥 | DACK | 00 | 1 | 控制应用区内结构添加和删除 |
应用锁定子密钥 | - | - | 2 | 应用锁定 |
应用解锁子密钥 | - | - | 1 | 应用解锁 |
文件更新子密钥 | - | - | 1 | 应用区内有关信息文件的更新保护 |
复合消费维护密钥 | DCPK | 01 | 1 | 复合消费文件维护 |
PIN解锁密钥 | DPUK | 00 | 2 | 解锁PIN |
PIN重装密钥 | DPLK | 00 | 2 | 重装PIN |
消费子密钥 | DPK | 01~0A | 2 | 共10组密钥 |
圈存子密钥 | DLK | 01~02 | 1 | 共2组密钥 |
TAC子密钥 | DTK | 00 | 2 | 消费交易验证 |
其中,应用锁定子密钥、消费子密钥、TAC子密钥是互通的;其他密钥均由发卡方自行管理。
#### 文件结构
##### 公共应用基本信息文件
**SFI** | 0x15 |
**文件类型** | 二进制文件 |
**文件大小** | 0x1E |
**权限** | 读=自由 | 写=SM |
**字节** | **数据元** | **长度** | **格式** | **说明** |
01~02 | 发卡方代码 | 2 | BCD | |
03~04 | 城市/项目代码 | 2 | HEX | |
05 | 多算法支持 | 1 | BCD | |
06 | 行业代码 | 1 | BCD | |
07~08 | 预留 | 2 | HEX | |
09 | 互联互通启用标识 | 1 | HEX | 0x00为未启用,非0x00为启用 |
10 | 应用版本 | 1 | HEX | |
11~12 | 互联互通标识 | 2 | HEX | 同城市/项目代码 |
13~20 | 用户卡应用序列号 | 8 | HEX | |
21~24 | 应用生效日期(YYYYMMDD) | 4 | BCD | |
25~28 | 应用失效日期(YYYYMMDD) | 4 | BCD | |
29~30 | 预留 | 2 | HEX | |
##### 复合交易记录文件
**SFI** | 0x17 |
**文件类型** | 变长记录文件 |
**文件大小** | 0xA0 |
**权限** | 读=自由 | 写=SM/复合交易 |
**记录标识** | **字节** | **数据元** | **长度** | **格式** | **说明** |
0x09 | 01 | 0x09 | 1 | HEX | |
02 | 复合消费数据长度 | 1 | HEX | |
03 | 复合消费锁定标识 | 1 | HEX | 0x00表示允许,非0x00表示禁止 |
04~48 | 应用方自定义 | 45 | 自定义 | |
##### 电子钱包本地消费交易明细记录文件
**SFI** | 0x18 |
**文件类型** | 循环记录文件 |
**记录长度** | 0x17 |
**权限** | 读=自由 | 写=N/A |
**字节** | **数据元** | **长度** | **格式** | **说明** |
01~02 | 电子钱包消费交易序号 | 2 | HEX | |
03~05 | 预留 | 3 | HEX | |
06~09 | 交易金额 | 4 | HEX | |
10 | 交易类型 | 1 | HEX | 0x06表示消费,0x09表示复合消费 |
11~16 | 交易终端编号 | 6 | BCD | |
17~20 | 交易日期(YYYYMMDD) | 4 | BCD | |
21~23 | 交易时间(HHMMSS) | 3 | BCD | |
##### 电子钱包异地消费交易明细记录文件
**SFI** | 0x10 |
**文件类型** | 循环记录文件 |
**记录长度** | 0x17 |
**权限** | 读=自由 | 写=N/A |
**字节** | **数据元** | **长度** | **格式** | **说明** |
01~02 | 电子钱包消费交易序号 | 2 | HEX | |
03~05 | 预留 | 3 | HEX | |
06~09 | 交易金额 | 4 | HEX | |
10 | 交易类型 | 1 | HEX | 0x06表示消费,0x09表示复合消费 |
11~16 | 交易终端编号 | 6 | BCD | |
17~20 | 交易日期(YYYYMMDD) | 4 | BCD | |
21~23 | 交易时间(HHMMSS) | 3 | BCD | |
##### 电子钱包充值消费交易明细记录文件
**SFI** | 0x1A |
**文件类型** | 循环记录文件 |
**记录长度** | 0x17 |
**权限** | 读=自由 | 写=N/A |
**字节** | **数据元** | **长度** | **格式** | **说明** |
01~02 | 电子钱包充值交易序号 | 2 | HEX | |
03~05 | 预留 | 3 | HEX | |
06~09 | 交易金额 | 4 | HEX | |
10 | 交易类型 | 1 | HEX | 0x02 |
11~16 | 交易终端编号 | 6 | BCD | |
17~20 | 交易日期(YYYYMMDD) | 4 | BCD | |
21~23 | 交易时间(HHMMSS) | 3 | BCD | |
#### 其他说明
城市/项目代码表(城市邮编前4位)
城市/项目 | 代码 |
上海 | 2000 |
天津 | 3000 |
招商通 | |
全国景区一卡通 | |
无锡灵山 | |
社区有我 | |
北京未来科学城 | 0001 |
天津海河游轮 | |