Pixel 9 のタッチ決済で「複数のカードを検出しました」と言われて悲しい
Pixel 9 の Google ウォレットでタッチ決済すると、まれに複数カード検出のエラーが出る。レジ前で固まるあの数秒がつらいので、原因の仕組みを調べつつ悲しみを供養するメモ。
レジ前で僕は固まった
コンビニで、Pixel 9 をリーダーにかざした。いつもの動き。ピッと鳴って終わるはずだった。
なのに端末には「複数のカードが検出されました。1枚だけかざしてください」。
カードは、1枚も、出していない。ポケットに手は突っ込んでない。財布も鞄の中。あるのはスマホ1台だけ。なのに「複数」って言われる。後ろには人が並んでる。店員さんも「あれ?」みたいな顔をする。僕も「あれ?」みたいな顔をする。気まずさだけがしっかり2枚分ある。
毎回じゃないのがまた厄介で、たまにしか出ない。だから油断した頃にやってくる。ちょっとかっこつけてスマートに払おうとした日に限って出る。気がする。
なんで「複数」って言われるのか調べた
悲しいだけで終わるのもアレなので、仕組みを調べた。納得はしたけど悲しみは消えなかった。
ざっくり言うと、スマホのタッチ決済は HCE(Host Card Emulation) という仕組みで、スマホがNFCの「カードのフリ」をしてる。物理カードが入ってるわけじゃなくて、ソフトウェアでカードをエミュレートしてる。
で、決済端末(リーダー)側は、かざされたものが本当に1枚かを最初に確認する手順を持ってる。これが アンチコリジョン(衝突防止) という処理で、NFCの規格(ISO/IEC 14443 とか)にちゃんと定義されてる。リーダーが「そこにいるカード、IDを名乗って」と呼びかけて、複数のIDが返ってきたら「2枚以上あるな」と判断して、安全のために止める。違うカードから勝手に引き落とすのを防ぐための、まっとうな仕様。
問題は、スマホの中には決済の「役者」が何人もいることがある、という点。
- Visa / Mastercard のタッチ決済(EMVコンタクトレス、NFC Type-A/B)
- iD / QUICPay みたいなおサイフケータイ系(FeliCa、NFC Type-F)
- 場合によっては交通系IC
これらが同じ1台のスマホに同居してる。普段はGoogleウォレットがいい感じに「今回はこのカードね」と交通整理してくれてる。けど、かざす角度・距離・時間、リーダーの世代、複数の決済アプレットが一瞬だけ同時に顔を出すタイミング、みたいなものが噛み合うと、リーダーからは「あれ、こいつ複数の規格で返事してるぞ=カード複数枚じゃん」に見えてしまう。
つまり僕は1枚も出してないのに、スマホの中の住人が一斉に「はい!」「はい!」って手を挙げて、リーダーが「多いわ」ってなってる。物理的には何も持ってないのに、論理的には満員電車。悲しい。
調べてる途中で、Pixel 8 でも同じ「1枚だけかざしてください」報告があったし、Pixel 9a で初回だけ必ず失敗するという声もあった。僕の個体だけが拗ねてるわけじゃないらしい、というのは少しだけ救いだった。少しだけ。
いちおうの対処
調べた範囲だと、効きそうなのはこのあたり。
- 決済の前にNFCを一度オフ→オンしてからかざす(一番効くという報告が多い)
- 画面をしっかり起き上がらせて、ロック解除してからかざす
- ケースが分厚かったり金属が入ってたら外してみる
- 使うカードをGoogleウォレットで明示的に選んでおく
- Googleウォレットのキャッシュ削除、アプリとOSの更新
正直、レジの行列の前で「ちょっとNFCオフにしますね」をやる胆力は、僕にはない。後ろの人の視線が2枚分どころじゃない。だから結局、エラーが出たら何事もなかった顔でもう一回かざす、という運用に落ち着いてる。だいたい2回目は通る。通るんだけど、1回目で決まらなかった事実だけがじんわり残る。
まとめにならないまとめ
便利だから使ってる。使ってるから、まれに裏切られると地味に刺さる。スマホ1台で全部済むって聞いてたのに、その1台の中で住人が増えすぎて喧嘩してる、みたいな話だった。
仕組みを知ったら少しは優しくなれるかと思ったけど、レジ前であの文字を見たら、たぶん僕はまた「あれ?」って顔をする。次は固まらずに済むといいな、くらいの気持ちでいる。
参考にしたページ: