FAQ
-
为什么开发这个APP?
以前在日本旅行时使用过日本读卡APP,对其细致程度深感震惊。不仅轨道交通和公交线路所有站点名字,连闸机在车站的哪个出口第几台都能显示。 但当时囿于能力和精力,并未起心动念开发。
直到2019年9月,iOS 13开放了NFC读卡功能,而我恰好有一段空闲时间,遂从10月起投入读卡器的开发。
-
作者是业内人士吗?
不是,准确来说我连公交卡爱好者都算不上。也正因为此,我主要从普通使用者的角度思考,APP需要什么样的功能。 过于专业的功能已经由其他专业APP提供,我把精力主要放在实用信息的显示上。
-
APP界面过于简陋?
确实。我并非计算机专业出身,虽然爱好编程,但除了Excel小插件外没有编过什么像样的程序。移动端开发更是全新的领域。 因此,我选择在不影响功能的前提下,最大程度简化界面,这样才可能在较短的时间内完成第一版。
-
目前有哪些已知的问题?
硬件方面,部分用户反映iPhone 7系列读卡经常失败,上海交联首发卡也存在比较严重的兼容性问题,南京交联卡(金陵通)则有部分卡种无法被iPhone读取。
软件上的bug我在不断收集和改善中,但有些是我比较难以解决的,主要包括:
-
城市名显示错误
刷卡机写错城市代码的情况并不少见,即便写对了,代码本身有多个版本。如住建部时代,标准的城市代码是邮编前四位, 但也有城市使用电话区号,甚至身份证号前四位作为代码。到了交通部时代,有部分城市在写入交通联合卡片时仍然沿用 原代码,造成混乱。这类问题只能发现一处改善一处,因此还请发现后通过邮件或其他途径告知我。
-
交易记录不完整
如有入闸无出闸,有实际消费无记录等,这是各地刷卡机不完善造成的缺失。在APP层面无法解决。
-
-
发现bug后如何报告?
请通过反馈系统提交,附上错误的详细内容,正确的信息,并提供“专家信息”的截图。“专家信息”是1.3版的新功能,在设置中打开。
-
什么时候能支持XX市?
您可以参照以下方法自主调查,我会远程提供必要的协助。
另外,非常欢迎有资源的人士提供资料,帮助本项目壮大。
调查方法介绍
-
交通联合卡
相较而言,交联卡调查较为简单,因为交易通常会写入1E记录,该记录已对地铁还是公交进行了大致的区分。 请打开APP的专家信息,注意交易类型、辅助类型和线路和站点的代码。一般而言,轨道交通的代码是线路号+站点号,但是各地编号规则不同。 您可以使用控制变量法,如同一条线路,A站进,B站出,观察代码哪里发生了变化(与站点有关),哪里不变(与线路有关)。
掌握了大概的规律以后,您需要坐遍所有线路,保证数据准确。通常来说一条线上会按某种顺序编号,不可能也没有必要出入每一个站, 但需要确定首末站编号。另外如有以下情况的请特别注意,必要时要多跑几个站:
- 不连号
如您测得A站编号10,B站编号20,但A和B站中并不是9个站。常见的原因:中间有预留站或新建站,或者这条线分几期建设,每一期编号不同。
- 换乘站或共线站
比如A站是1号线和2号线的换乘站,那么A站可能在1、2号线上都有编号,也可能只在一条线上有编号。
- 分支线
指一条线有多于两个终点,需要注意分支线的编号规则,以及分岔站的编号。
公交线路如果写入记录,一般也在“线路和站点”的位置。可能是十进制,也可能十六进制。 请多坐几趟车找找规律,并注意非数字线路,即各种汉字或字母+数字的线路。
-
本地(住建部)标准卡
本地卡没有1E记录,通常只能观察18记录的终端号找规律,比如上海地铁的编号是两位线路+两位站点。但是,大多数城市并不存在这样的规律。
您需要发挥想象,大胆假设,小心求证。没有什么通用的方法。
-
没有规律时的应对(含交联卡无1E的情况)
没有1E时,解读终端号几乎是唯一的指望。但很遗憾,不少城市的终端编号并不存在规律。比如,A站终端号0001至0012,相邻的B站0015至0022,每个站根据大小分配到不等数量的号码。虽然看上去有一定的分配逻辑,但不把所有站点刷遍难以掌握准确的范围。
此种情况下,有两个方向进行调查,但无论哪个都是体力活。
-
广州法(查询机法):终端号 -> 站名
广州地铁站普遍备有查询机,可查询卡内近十次的交易记录,并显示地铁站名。
通过HCE模拟,每次可获得十个终端号对应的站点名称,详见下文。
-
杭州法(硬刷法):闸机 -> 终端号
杭州地铁既无规律也无查询机,只能通过实际过闸时记录终端号。
这是最为繁琐的方法,详见下文。
-
广州地铁调查法
使用工具:https://github.com/domosekai/cardemulator
首先我们要确定终端号的大致范围,这可以通过实际的刷卡记录获得。
比如某条新线开通,在不同站点刷卡测试发现编号大致范围是000100200000至000100205000,那么我们要对这5000个号进行测试。
打开测试工具(需将手机默认HCE程序设置为本app),Local Type选择YCT,Feature选择PSM Scan。在下方输入起始编号,比如000100200000。然后贴在查询机上。
查询机应显示自该号(含)起十个编号的站名,即000100200000至000100200009。为提高效率,用另一台手机拍照记录。
然后按+10,进行下十个的查询。(如遇到空号段,可以+50快速跳过)
拍照记录时,请将查询结果和测试画面同时拍下,后期整理成表格形式(终端号-站名)提交。
实地效果
杭州地铁调查法(含绍兴、海宁)
使用工具:https://github.com/domosekai/cardemulator
打开测试工具(需将手机默认HCE程序设置为本app),Feature选择HZ Metro,此时Local Type自动选择HZ,TU Type自动选择TU。
TU Issuer是模拟的发卡机构,默认为北京卡,通常无需修改。
下方应输入当前测试的线路和站点,比如7号线,萧山国际机场。城市和机构代码等通常无需修改。输入完毕按Apply。
切换到第三页TERM进入刷卡模式。需要选择模拟的是CU卡片还是TU卡片,二者终端号不同(如果都想调查要刷两次),同时要选择测试进站或出站闸机。
选择完毕后将手机放置在闸机上模拟刷卡,由于不是真卡,闸机不会打开,但是终端号会被app记录下来,读到终端号时手机会发出提示音。
杭州部分线路闸机会发出“请到客服中心处理”的语音报警,请远离工作人员使用。同一排闸机连号的情况比较常见,此时也可以只测试左右两端闸机。
进站和出站闸机都需要测试,可以先在站内把出站闸机刷完,出闸后把每个进站口(小站一般2-3个)刷一遍。
一个站测试完成建议按一次Save保存,再按Clear并回到第一页输入下一站的信息。
请将导出的数据上传反馈系统,数据格式如下:
2020-09-03 10:54:24.560,4,彭埠,,CU,Out,310001052604
2020-09-03 10:54:29.653,4,彭埠,,TU,Out,413106146335
2020-09-03 10:54:56.624,4,彭埠,,TU,Out,413106146346
2020-09-03 10:55:00.264,4,彭埠,,CU,Out,310001052595
2020-09-03 10:55:15.903,4,彭埠,,CU,Out,310001028799
2020-09-03 10:55:18.434,4,彭埠,,TU,Out,413106146375
2020-09-03 10:55:29.945,4,彭埠,,TU,Out,413106146366
2020-09-03 10:55:34.266,4,彭埠,,CU,Out,310001028808
杭州法原则上可以抓取所有兼容手机HCE的城市,但需要修改程序。具有相关知识的用户可以自行修改代码。