iPhone 是如何实现钱包刷卡公交记录站点信息的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
YaakovZiv
V2EX    iPhone

iPhone 是如何实现钱包刷卡公交记录站点信息的

  •  
  •   YaakovZiv 151 天前 5488 次点击
    这是一个创建于 151 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在使用 iPhone 刷卡地铁或公交时,会在交易记录自动存档站点信息,对我很有帮助,我每次核对账单都能知道自己刷了什么站点,确保自己真实刷了进出站或者公交车上车位置,我也能确保自己的公交卡没被盗刷。地铁记录站点我能理解,地铁设备有唯一编码,我和同事出差维修时见过轨交集团安排外包做配置。但是公交车的站点记录,我不理解,iPhone 的钱包怎么知道我在什么站点上车的,通过 iPhone 的定位匹配站点名字吗,我所在位置有两站点名字时,iPhone 怎么知道我是哪个站点上车的,比如公交站仅允许 k1 进站,站点名字 A ,旁边走几步就能到站点 B ,仅允许 k2 进站。k1 公交车并非标准停靠站点 A ,高峰期会在站点 A 和 B 之间停车,但是 iPhone 可以正确识别我的上车站点,这是啥原理。有网友可以分享一下吗。

    35 条回复    2025-07-24 08:41:07 +08:00
    KoreaFish
        1
    KoreaFish  
       151 天前 via iPhone   1
    GPS 和吧?
    mbooyn
        2
    mbooyn  
       151 天前   1
    要不,交通公司告诉 iPhone ,这张卡号的出入站记录?
    MisterQ
        3
    MisterQ  
       151 天前 via iPhone
    公交车司机到一个站需要按一个按钮的,刷卡机应该知道当前站。不过几年没坐公交了,不知道现在还是不是一样
    ETiV
        4
    ETiV  
       151 天前 via iPhone
    想那么多干啥。

    即便 k1 AB 都能停,它自己站台记录里只有 A 。只要你在 k1 上面刷卡,靠定位就能匹配上。

    或者你试试把定位完全关掉,也不开放给系统那种
    skyrocketing
        5
    skyrocketing  
       151 天前   1
    iOS 和安卓上有一个 app 叫读卡识途,可以读取实体和手机 NFC 的交通联合卡数据。查看详情会有对应的站点数据。
    Dispatcher
        6
    Dispatcher  
       150 天前
    日本的 suica ( felica )出口给中国了,所以我可以盲猜一下几乎都是使用了相似的实现。

    很多人的 suica 在中国也能刷上,只是无法扣费,甚是奇葩。
    Dispatcher
        7
    Dispatcher  
       150 天前
    我查了一下,大致是这样的:1 、ios 内部建立了一个庞大的数据库,根据刷卡信息的站点和路线,匹配数据库的信息,然后显示为文字 string 。如果是飞行模式,也能显示,但是不在数据库内的估计就无法显示了;
    2 、打开流量后,就可以云下发相关的信息,更新数据库什么的了。
    fox0001
        8
    fox0001  
       150 天前 via Android
    有没有可能是公交系统发送数据给 iphone ?公交车既然能播报到站,应该是能识别站点。当然,我以前(是 20 年前吧)见过公交司机按一下按钮,实现报站的。
    fbcskpebfr
        9
    fbcskpebfr  
       150 天前 via iPhone
    不理解这为什么是个问题
    公交车刷卡机本就应该知道自己现在在哪一站,否则怎么给公交卡计费呢
    wangxiaoer
        10
    wangxiaoer  
       150 天前 via iPhone
    @ruimz 刷卡机当然知道自己在哪一站,但谁又告诉你刷卡机会把这个消息传给手机?
    YaakovZiv
        11
    YaakovZiv  
    OP
       150 天前
    @skyrocketing 感谢分享
    YaakovZiv
        12
    YaakovZiv  
    OP
       150 天前
    @Dispatcher 了解了,感谢分享
    YaakovZiv
        13
    YaakovZiv  
    OP
       150 天前
    @fox0001 我是不是可以理解成,公交车的报站就自动给刷卡机器推送了标识信息,这样刷卡时,手机就能记录在哪个站点上车了。
    avrillavigne
        14
    avrillavigne  
       150 天前
    小米的深圳联合卡就不会记录
    Dispatcher
        15
    Dispatcher  
       150 天前
    @YaakovZiv 是的。felica 内部有极有限的存储空间。可以储存一些刷卡记录。先进先出。

    每次刷卡(限定 nfc )都是离线操作,服务端是不参与交易过程的。所以卡片和刷卡机是有信息交互的。即便是 iphone 模拟的卡片也有信息交互。

    所以啊,nfc 刷卡速度快,不像二维码,识读、扣费巨他妈慢,有的人慢悠悠到了闸机才调出来二维码,恨不得踹他两脚。而且二维码,还很依赖支付平台,但凡有一点问题,全部线路乘车人罚站。

    还好日本这边几乎全部都是 nfc ,手表手机卡片,轻松一刷,完全没障碍。
    fbcskpebfr
        16
    fbcskpebfr  
       150 天前 via iPhone
    @wangxiaoer 因为手机模拟的是交通卡,公交设备得把站点信息给交通卡才能计费。
    既然手机支持这个功能,也有现成的信息,没理由不读
    MacsedProtoss
        17
    MacsedProtoss  
       150 天前 via iPhone
    感觉应该是闸机&发卡公司提供的数据
    首先是香港八达通,看了下只有消费类型和消费金额,没有定位信息
    再看了下羊城通,在广州一条记录里面就有进站和出站地点的完整记录。
    但是羊城通在省外就会变成两笔消费且带有地址,一笔 0.00 进站,另一笔真实金额出站
    wand
        18
    wand  
       150 天前
    @Dispatcher 「日本的 suica ( felica )出口给中国了」,没太明白,意思是中国的公交卡都是基于日本授权的某种技术?除了 NFC 还有啥黑科技吗?
    kyor0
        19
    kyor0  
       150 天前
    @wand nfc 就 2 种一个是欧美的 type A/B ,然后就是日本索尼的 felica 。

    国内基本都是混用,地铁用 type A/B 的多,公交车用 felica 的多。香港澳门地铁公交全部用的都是 felica
    Dispatcher
        20
    Dispatcher  
       150 天前
    @wand 首先,我查了一下 google ,找到这篇文章:
    《探秘日本电车日本车站闸机(道闸)是如何提高通行效率的?》 https://www.nippon.com/cn/japan-glances/c029227/
    “日本交通卡采用来自索尼的 FeliCa 芯片技术,也就是所谓的 NFC Type F ,反应时间 200 毫秒,比普通的 NFC A/B 快一倍。闸机读卡器的感应范围也更大,FeliCa 拥有 85 毫米的感应范围,而普通的 NFC A/B 只有 40 毫米的感应距离。”

    然后,我去小红书搜了一下,关键字是:西瓜卡 中国 地铁 刷卡
    然后找到了很多文章,例如:《西瓜卡在国内刷了求助》 https://www.xiaohongshu.com/explore/66cdac70000000001f0145b9?xsec_token=ABsZoO5rZKaK9a9mqwttG9PfwCEEqwcJ_tAqNLRBlCHVw=&xsec_source=pc_search&source=web_explore_feed
    《西瓜卡误刷国内行程求助JR 上海》 https://www.xiaohongshu.com/explore/67b9ba0c000000002903c5f2?xsec_token=ABFiGfVDcN3y2NNBro4TOP1UQODHUv3PhapURqqvThIk8=&xsec_source=pc_search&source=web_search_result_notes

    然后看了评论区,提到国内引进了 felica ( sony 的技术),Wikipedia 查到: FeliCa ( 2007 年 12 月前行的卡片及 2012 年推出的「互通行卡」) TimeCOSFLY ( 2008 年 1 月至今)
    https://zh.wikipedia.or/wiki/%E6%B7%B1%E5%9C%B3%E9%80%9A
    Pazakui1259
        21
    Pazakui1259  
       150 天前   2
    读卡机当然知道自己在哪站,现在比较常见都是 GPS 自动定位识别,读卡机必须要知道自己在哪站才能正确统计并计费。现在常见的交通联合协议读卡机就可以向卡片写入交易信息,俗称“写 1E”。上面提到的读卡识途 app 就是一个很好用的 app ,可以查看卡片内的“1E”交易信息,“1E”里不但会包含是哪种公共交通以及交易金额,还会包含城市线路站点的代码。当然了手机内会有相应数据转换为对应站点名称的。读卡识途这种第三方 app 是靠社区来维护的,大家都可以反馈当地的交易 1E 信息代码来完善读卡识途 app 的城市线路站点识别。见 https://www.domosekai.com/reader/faq.html https://support.domosekai.com/bugs/my_view_page.php
    zsqduke
        22
    zsqduke  
       150 天前
    原理跟地铁一样
    tidzhang
        23
    tidzhang  
       150 天前
    我在北京刷卡,钱包 app 里没有公交的站点信息,只有地铁的
    billgong
        24
    billgong  
       150 天前
    @Dispatcher #6 曾经有一部分地区用过 Felica ,但交联以后大陆已经没有系统还在用 Felica ,全面换用自有协议了。空口是标准的 NFC 但实现不太一样,有点像银行卡的 EMV 和 PBOC 那种关系。交联 Apple Pay Transit 是单独定制了协议支持。现在除了日本,比较出名的 Felica 系统也就剩下八达通了。不过不论哪个系统,这些卡片都有足够的扇区写入行程信息,iPhone 端则是单独解码了这些信息显示到 app 里面方便用户使用。
    wangxiaoer
        25
    wangxiaoer  
       150 天前 via iPhone
    @ruimz 这个就不懂了,我见过的公交车票价都是固定的。 如果计费不一样的话,是不是要上下车各刷一次,类似地铁那种。

    但是考虑到公交车上下都是同一辆车,站点信息直接存在车上的刷卡机也能实现,不一定要传给手机等刷卡设备吧。

    地铁支持换乘,如果闸机也要支持离线作业,似乎只能把地铁站点信息存到刷卡设备里面。不过不知道公交卡、手机 nfc 支持写入信息不?
    P945
        26
    P945  
       150 天前 via iPhone
    公交车有定位(每到一个站都会播报),NFC 有互交,联网推送等好几种实现方式。
    qwertyssp
        27
    qwertyssp  
       150 天前 via Phone
    首先说报站器,最早的报站器是手动报站,后面 gps 普及后早就是自动报站了(十年前都已经普及了)。再来说扣费卡机,现在市面上的储值卡都是 CPU 卡,cpu 卡在刷卡时候会与卡机交互,卡机会读写 cpu 卡 ,卡片会存入交易记录,当然卡机也会将交易通过移动网络传输到后台(用来统计客流以及联网移动支付等等),卡机具备联网以及定位功能。
    julyclyde
        28
    julyclyde  
       150 天前
    无非是查表或直接传输了站名这两种呗
    不是这个就是那个


    @kyor0 内地基本上都 A 卡。内地没听说有公交和地铁分离的卡片
    YaakovZiv
        29
    YaakovZiv  
    OP
       150 天前
    @Pazakui1259 感谢分享,这个也很清晰
    zohar727
        30
    zohar727  
       150 天前
    好奇你是哪个城市的?我在北京和深圳的公交都刷过,并不会记录站点信息啊。只有地铁才会
    lovelylain
        31
    lovelylain  
       150 天前 via Android
    跟上车刷卡下车刷卡一个原理呗,既然上下车刷卡能实现分段收费,那么这个数据也可以回传到你的手机上显示,所以你去搜一下公交上下车刷卡分段收费的原理就行了
    bao3
        32
    bao3  
       149 天前
    是服务端告诉给了你的公交卡,而不是你的公交卡知道是哪个点。
    FringJX
        33
    FringJX  
       149 天前
    Apple pay 上的公交卡你可以理解成发卡公司的简易第三方客户端。api 前后端数据交互直接由发卡公司提供。
    不然,你点开交通卡的详情看一下,会显示对应的发卡方的 app ,可以直接跳转下载或者打卡。
    比如北京的交通卡,对应的就是北京一卡通 app 。
    Avedge
        34
    Avedge  
       148 天前
    @fsq 现在还是这样的
    lzyroot
        35
    lzyroot  
       146 天前
    @Avedge 现在有地磁感应
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1005 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 18:37 PVG 02:37 LAX 10:37 JFK 13:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86