V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ydeveloper
V2EX  ›  iOS

成都天府通 1 秒出码之 IOS 捷径实现

  •  
  •   ydeveloper · 2020-05-29 09:17:04 +08:00 · 8832 次点击
    这是一个创建于 1637 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 背景:成都用上天府通扫码之后确实太方便了,不用充值,不用忘记带卡。但天府通作为一个工具 APP,我每次只会使用打开扫码上车功能,只为了少点一次扫码,所以考虑用上捷径方法。(这个思路应该是首发,目前没看到网上有现成的方案;但是实现不难,相信也有小伙伴在俏俏使用。在此请将来用上的小伙伴,低调使用,勿要拼单,以避免方法失效。如果是官方看到,希望能顺手丢一个 URL Schemes 出来。)

    • 效果:秒开二维码,不用打开天府通 APP 。

    • 实现思路:用的天府市民云里的接口,直接从接口进,获取键值,再生成二维码,预览。

    Q:为什么不使用 URL Schemes 方法?

    A:首先是没找到;其次是这个方法会唤醒 APP,跳来跳去不喜欢,唤醒后还要加载数据,还有强制亮屏的瞬间,感觉不爱。

    Q:为什么不用天府通 APP 的接口?

    A:早期版本可以实现,当时也做过,只是手贱误删了。更新后的版本抓包,就是一团乱麻,没有找到可用方法。如果有仁兄有方法,可以一起交流。

    Q:有效期多久?

    A:早期用抓的天府通 APP 里的方法每个 COOKIE 有效期大概 20+天的样子,现在这个方法不知道还能持续多久,后续测试好后更新此答案。

    Q:为什么不把文件直接公布?

    A:不是扫盲帖,会使用捷径的同学一看这个帖子就会明白,不会用的估计对这个问题也不感兴趣。

    anyway,欢迎讨论。

    40 条回复    2023-10-18 18:13:38 +08:00
    dullwit
        1
    dullwit  
       2020-05-29 09:26:51 +08:00
    我换了 7 芯卡,直接刷手机
    illl
        2
    illl  
       2020-05-29 09:28:41 +08:00 via iPhone
    @dullwit 天府通是个奇葩,你换啥都不能直接刷
    glaucus
        3
    glaucus  
       2020-05-29 09:32:38 +08:00   ❤️ 1
    云闪付有办法吗,哭了每次都要点两下
    zclHIT
        4
    zclHIT  
       2020-05-29 09:33:36 +08:00
    会有人出个扫盲贴嘛?
    create2308
        5
    create2308  
       2020-05-29 09:57:06 +08:00 via iPhone
    地府通迟迟不接入 Apple Pay
    用一次吐槽一次,但还是不得不用。
    现在已经不想使用实体卡了
    ydeveloper
        6
    ydeveloper  
    OP
       2020-05-29 09:57:20 +08:00
    @glaucus 哈哈,云闪付正在尝试。估计有点困难。毕竟这货要便宜些。
    zclHIT
        7
    zclHIT  
       2020-05-29 10:01:07 +08:00
    刚看到是要从市民云的入口开始抓嘛?我只抓到了一堆 static 的文件。。。。
    vtoexwj
        8
    vtoexwj  
       2020-05-29 10:53:19 +08:00
    @ydeveloper 云闪付多少折啊
    kookio
        9
    kookio  
       2020-05-29 11:05:24 +08:00
    那啥 apple pay 的京津冀互联交通卡,不支持四川成都吗?长沙都可以啊,只是没折扣,ios13.5
    ydeveloper
        10
    ydeveloper  
    OP
       2020-05-29 11:47:18 +08:00
    @create2308 当然接入 Apple Pay 是最好的解决方案。从北京的情况来看,仍然只能用银行卡绑定,想支付宝收能量还是有点不能两全。
    create2308
        11
    create2308  
       2020-05-29 11:47:19 +08:00 via iPhone
    @create2308 更正:地铁还未接入,公交已接入。
    ydeveloper
        12
    ydeveloper  
    OP
       2020-05-29 11:47:51 +08:00
    @glaucus 云闪付还在尝试,毕竟这货要便宜些嘛。出新了再本贴更新。
    ydeveloper
        13
    ydeveloper  
    OP
       2020-05-29 11:51:26 +08:00
    @zclHIT tfsmy.chengdu.gov.cn ,看这个域名下的请求,加油兄弟。
    xratzh
        14
    xratzh  
       2020-05-29 12:02:00 +08:00
    CQ 一直都在用微信和支付宝小程序直接扫。方便快捷
    580a388da131
        15
    580a388da131  
       2020-05-29 13:06:34 +08:00 via iPhone
    我在地府还是老是刷卡吧,幺蛾子太多了。🙃
    580a388da131
        16
    580a388da131  
       2020-05-29 13:12:08 +08:00 via iPhone
    话说你们看着微信支付宝详细到秒的乘车记录不慎得慌吗?
    ydeveloper
        17
    ydeveloper  
    OP
       2020-05-29 13:41:39 +08:00
    @580a388da131 我的观点是,只要活在世上,就一定会有痕迹。出个门都有天眼。技术给我们带来便利性的同时,牺牲一些个人隐私作为用户画象还是有必要的。有了这些约束,会更好约束自己的行为。再则说,自己也不过是苍海一米,谁会来查自己呢。进一步说,这个时代,谁要是真来查你,什么资料查不出来呢。你说是吧。
    Unclev21x
        18
    Unclev21x  
       2020-05-29 14:56:21 +08:00
    @illl
    @create2308

    去年去了一次成都,表示天府通的体验真是太差了。
    ranleng
        19
    ranleng  
       2020-05-29 15:40:50 +08:00
    @create2308 看到这个我就想吐槽. 公交不应该包括地铁么..
    上次开通个微信乘车卡, 结果没法坐地铁.. 问了下才知道 公交 = 公交车,
    MaxLi77
        20
    MaxLi77  
       2020-05-29 15:42:28 +08:00
    {
    "data": {
    "encPrik": "sg*****A8",
    "offlineQrData": {
    "validTime": "003C",
    "version": "01"
    },
    "qrCertNos": ["7"],
    "qrcodeData": {
    "expiresIn": 60,
    "qrcode": "AS******Kr"
    }
    },
    "message": "获取乘车二维码成功",
    "status": 0
    }
    Android 上抓包看了下,Response 大概是这样,那个 qrcode 和二维码扫的结果是一样的,不过还没摸清楚发包规则
    icharon
        21
    icharon  
       2020-05-29 15:46:55 +08:00
    @kookio 支持成都,但仅限于公交,地铁不支持
    icharon
        22
    icharon  
       2020-05-29 15:50:48 +08:00
    等大佬出一个扫盲贴
    Norie
        23
    Norie  
       2020-05-29 18:00:48 +08:00 via iPhone
    NFC 路过
    ydeveloper
        24
    ydeveloper  
    OP
       2020-05-29 20:56:19 +08:00 via iPhone
    @MaxLi77 能否告知一下在安卓抓是用的什么方法?我用花瓶试了,结果值都是乱码。。
    zclHIT
        25
    zclHIT  
       2020-05-31 16:32:29 +08:00
    谢谢大佬,我好像知道怎么用了,但是请求拿到的 /scan-code-rh/api/front/code 其实是一组 code 码,需要什么思路去转换成二维码么。。。
    ydeveloper
        26
    ydeveloper  
    OP
       2020-05-31 20:47:20 +08:00 via iPhone
    @zclHIT 对的,直接用捷径转成二维码,预览它就好啦。恭喜成功思密达。
    MaxLi77
        27
    MaxLi77  
       2020-05-31 21:45:53 +08:00
    @ydeveloper 乱码估计是没有绕过 ssl 证书校验 吧,就算解出明文,他也是加密的,每次请求随机生成 AES key,加密数据,再用 RSA 生成签名,需要把安装包逆向了
    zclHIT
        28
    zclHIT  
       2020-06-01 10:39:11 +08:00
    @ydeveloper 谢谢大佬的指导 :)
    ydeveloper
        29
    ydeveloper  
    OP
       2020-06-01 11:17:16 +08:00
    @zclHIT 我只是引个路,操作也比较容易。还是自己搞的成就感强是吧?
    @MaxLi77 能不能具体指导一下~你抓的内容很完美啦。
    MaxLi77
        30
    MaxLi77  
       2020-06-01 14:20:56 +08:00
    @ydeveloper 我只知道 Android 版怎么弄,他这个 Android 版是加壳了,需要先脱壳,脱壳后用 jeb 反编译软件去找它 http 请求的加解密算法,找到之后用 xposed 或者 frida 框架 Hook 它的加解密算法,就能直接拿到明文。iOS 版的估计也差不多,先砸壳,然后找加解密算法,写个 tweak 插件 hook 上就行了。手机要 root 和越狱的才能测试。
    zyu0090
        31
    zyu0090  
       2020-11-02 21:56:53 +08:00 via iPhone
    @glaucus
    @ydeveloper
    云闪付 upwallet://rn/rnshcarcode
    glaucus
        32
    glaucus  
       2020-11-03 09:02:16 +08:00
    @zyu0090 #31 谢谢,不过我又用回天府通了 hh
    zyu0090
        33
    zyu0090  
       2020-11-03 09:23:25 +08:00 via iPhone
    @glaucus 天府通有解了吗?
    glaucus
        34
    glaucus  
       2020-11-05 21:03:18 +08:00
    @zyu0090 #33 还没有,看 LS 成功的不少啊,有空研究一下
    QingStone
        35
    QingStone  
       2020-11-14 23:37:04 +08:00
    有大佬研究出来了吗?
    ydeveloper
        36
    ydeveloper  
    OP
       2020-11-24 12:48:21 +08:00
    此方法持续有效,cookie 有效期 3 个月+
    zyu0090
        37
    zyu0090  
       2021-01-13 21:26:47 +08:00
    @ydeveloper #36 什么方法?
    caoyulotus
        38
    caoyulotus  
       2021-04-12 16:30:33 +08:00
    @ydeveloper 多谢大佬,看了你的帖子,折腾了两个小时,成功显示出了二维码,等哈下班了去试试看能成功刷上不
    wangmu0579
        39
    wangmu0579  
       2023-10-16 09:05:52 +08:00 via Android
    Android 的也实现了
    用的天府市民云的 https post 接口,cookie 不知道能用多久。需要抓取 https 并且解码。
    应该可以用 post 做成 Android 程序只显示二维码。
    我是用 termux 运行一个简单 http Python 服务器,get 方法再调用 post tfsmy 。再将结果直接返回二维码图片显示在浏览器中。Chrome 浏览器做快捷方式。
    wangmu0579
        40
    wangmu0579  
       2023-10-18 18:13:38 +08:00 via Android
    把二维码显示占满整个屏幕,妈妈再也不用担心刷卡的时候半天刷不出来的那种尴尬了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 21:01 · PVG 05:01 · LAX 13:01 · JFK 16:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.