きっかけ
最近、ときどきファミマでTカードを使うようになり、モバイルTカードアプリなるものがあることを知った。
しかし、TカードアプリはたんにWebViewでカードページを表示しているだけだ。その割に、無駄に操作が多く、ファミマWiFiを拾ってしまったらカード画像が表示できないこともしばしば。開発元はちゃんと試験してないだろ!!
ということで、とにかくぱっと開いてさっとカード画像を表示したいだけのアプリを作った。
以下、作っていく過程のつぶやきをただ書いているだけなので、有益なことは何も書いていない。
ファミマのTカードアプリが死ぬほど使いづらいから、自分用のTカードアプリつくろうかな
— Yusuke Iwaki (@yi01imagination) 2019年2月3日
ということで、まずはCharles Proxyで通信内容を除いてみることにした。
カード会社のアプリなどであれば、証明書のpinningとかされてて覗けないのだけど、
Charlesで余裕で通信の中身が覗けてしまうTカードアプリ。 pic.twitter.com/uMjUQGXc6w
— Yusuke Iwaki (@yi01imagination) 2019年2月3日
(ノω・)テヘ
Tカードの表示ロジックなんとなくわかった。 pic.twitter.com/ifzWrV7M5N
— Yusuke Iwaki (@yi01imagination) 2019年2月3日
app_id_tkn
っていうのをどうにかして手に入れれば、いくらでもカード表示のWebViewができるということがわかり、
ただのWebの画面表示でいけるね・・・Tカード。アプリの存在意義が皆無・・・。 pic.twitter.com/IRBxrmqrHE
— Yusuke Iwaki (@yi01imagination) 2019年2月3日
ただ、認証トークンを取得するまでのプロセスが、ファミマアプリは
famima_t_token ってのをどこかしらで取得すれば、あとはTカードのAPI叩き放題な感じする。 pic.twitter.com/FnUdtLMxVM
— Yusuke Iwaki (@yi01imagination) 2019年2月3日
あった。famima_t_tokenの取得APIはこれか。アプリのAuth情報があれば無限に発行できそうな気配。 pic.twitter.com/GHdGDrRRqz
— Yusuke Iwaki (@yi01imagination) 2019年2月3日
こんなかんじで、ちょっとだけめんどうだなー、ってなった。
そこで、ShufooっていうもうひとつTカードを表示する機能があるアプリを見てみることにした。
TカードxShuhooのアプリ、認証トークンの取得APIが非SSLなんだけど、これはアカンやつでは・・・ pic.twitter.com/2Zk55HGKJY
— Yusuke Iwaki (@yi01imagination) 2019年2月3日
こいつはマジでアカンやつだw っておもいつつ、これをシミュレートするアプリはとてもカンタンに作れそうだったので、決行。
→3時間くらいで作れた。
実際に使えるの?
→今日(2019/02/04)ファミマで実際に使ってみました。使えました。
まとめ
自分専用だから、(カード番号をソースに埋め込んだりはしていないけども)みんな使わないでね。