GPB RTDNデコーダー|Google Play課金のリアルタイム通知(Pub/Sub)を貼るだけで解析【ブラウザ内・送信なし】
Google Play課金のリアルタイムデベロッパー通知(RTDN)を貼り付けると、中身を一発で読める形に解析するツールです。
Pub/Subで届くdataはbase64でエンコードされていて、そのままでは中身が分かりません。このツールがデコード+notificationTypeの意味付け+日時変換までまとめて行います。
処理はすべてブラウザ内で完結します。purchaseTokenなど機微な値を含むため、サーバーに送信しないのは安心ですよね。
RTDN を貼り付け(Pub/Sub メッセージ全体 / message.data の base64 / DeveloperNotification のいずれか)
※入力データはブラウザ内だけで解析し、サーバーには送信しません。
通知の種類(定期購入/1回限り/無効購入/テスト)を自動判別し、該当フィールドを整理して表示します。
このツールでできること
- Pub/Subの
message.data(base64)をデコードしてDeveloperNotificationを整形表示 notificationTypeの数値を定数名+日本語の意味に変換(例: 4 → SUBSCRIPTION_PURCHASED)eventTimeMillisを日本時間(JST)とUTCに変換purchaseToken・orderIdなどをコピーしやすく抽出- 無効購入の
productType・refundTypeもコード→意味で表示
使い方(3つの入力形式に対応)
次のどの形でも、そのまま貼り付ければ解析します。デバッグ中に手元にある形のまま使えます。
| 入力する形 | こんなときに |
|---|---|
| Pub/Sub メッセージ全体(JSON) | プッシュ通知のリクエストボディをそのまま貼りたいとき |
| message.data の base64 文字列 | data の値だけをログから取り出したとき |
| DeveloperNotification(JSON) | すでにデコード済みのJSONを意味付けしたいとき |
まずは「サンプルを入れる」ボタンで動きを確認してみてください。
notificationType の一覧と仕組み
DeveloperNotificationの構造、notificationTypeの全コード(定期購入・1回限り・無効購入・テスト)の一覧と、Pub/Subの設定手順は、以下の解説記事にまとめています。
このツールの安全性(ブラウザ内処理)
RTDNにはpurchaseTokenやorderIdといった、購入を特定できる値が含まれます。
このデコーダーはJavaScriptですべてブラウザ内で処理しており、貼り付けた内容をサーバーへ送信しません。通信を切った状態でも動作します。
通知を受け取った後の正しい流れ
大事なのは、notificationTypeを鵜呑みにせず、必ずGoogle Play Developer APIで最新状態を取得し直すことです。
定期購入ならpurchases.subscriptionsv2.get、1回限りの購入ならpurchases.products.getで確認します。Pub/Subは順序保証がなく重複もあり得るので、受信後の処理は冪等に設計しておくと安心です。
各通知タイプがライフサイクルのどこに当たるかは、以下の記事で確認できます。

まとめ
- RTDNの
dataはbase64。デコードするとDeveloperNotificationになる - このツールはPub/Sub全体/base64/JSONのどれでも貼るだけで解析(ブラウザ内・送信なし)
- notificationTypeは意味の確認用。最終判断はDeveloper APIの最新状態で行う
💡 ブックマークしておくと、RTDNのデバッグ中にどの通知が来たのかをすぐ確認できて便利です。
