フロー
1. ユーザー: WhatsApp Botで「Quest参加」
→ 個人QRコード発行(ワンタイム・有効期限付き)
2. ユーザー: 店舗でQRを見せる
3. 店舗: スマホカメラでQRスキャン
→ WhatsApp会話が開く
→ 「この人のQuest完了」が自動送信
4. Bot: 完了処理
→ ユーザーに完了通知
→ 店舗に完了確認
不正耐性比較
| 攻撃 |
案A(コード) |
案C(QRスキャン)✅ |
| 盗み見 |
◯ 簡単 |
✕ QRは動的 |
| 共謀 |
◯ 痕跡なし |
△ 痕跡残る |
| 総当たり |
◯ 可能 |
✕ 不可能 |
| 遠隔不正 |
◯ 可能 |
✕ 物理スキャン必須 |
技術実装
QRコード内容:
wa.me/{BOT_NUMBER}?text=VERIFY_{USER_ID}_{QUEST_ID}_{TOKEN}
トークン:
- ワンタイム
- 有効期限: 5-10分
- 使用済みで失効