API リファレンス
Google Play チェック
/v1/google-play/verifyこの API キーに設定されたサービスアカウントで、Google Play の購入トークンを確認します(コンソール → API キー → 編集 → Google Play サブスクリプションの確認)。結果は Google から直接返されます。ゲートウェイは課金せず、何を解放するかはアプリ側で決めます。結果はトークンごとに 1 分間キャッシュされます。
#リクエストパラメーター
purchase_tokenstring必須Play Billing の購入トークン。Flutter の in_app_purchase では purchaseDetails.verificationData.serverVerificationData です。
subscribed は、期限切れのものも含め、このアプリの実際のサブスクリプションであれば true です。active は利用可能な間だけ true です。キャンセルされたサブスクリプションは、自動更新がオフになっただけなので expiry_time まで active のままです。in_trial は現在の期間が無料トライアルの間 true で、その場合 expiry_time はトライアルの終了時刻です。不明なトークンはステータス 200 で、subscribed false、state NOT_FOUND を返します。
Google の設定、Flutter アプリからの呼び出し、何を解放するかの判断については、ガイドで順を追って説明しています。 アプリでの Google Play サブスクリプション →
キャッシュ済みの応答や失敗も含め、すべての呼び出しはコンソール → リクエストログ に、呼び出したキーの無料の「Google Play チェック」行として、結果、注文 ID、トークンの末尾数文字とともに表示されます。そこで購入トークン全体、末尾の数文字、または注文 ID で検索できます。これらの行はリクエスト数には含まれません。
#関連するエラー
- 400 invalid_requestボディが JSON でないか、purchase_token がありません。
- 400 google_play_not_configuredこの API キーにはまだパッケージ名とサービスアカウントが設定されていません。
- 401Bearer トークンが無効か、ありません。
- 429確認呼び出しのキー単位の上限:デフォルトは 1 分あたり 120 回で、サポートがキーごとに引き上げられます。上限はキーの Google Play 設定に表示されます。Retry-After の時間だけ待ち、前回の結果を引き続き使ってください。
- 502 google_play_api_disabledサービスアカウントの Google Cloud プロジェクトで Google Play Android Developer API が有効になっていません。有効にして、数分後に再試行してください。
- 502 google_play_permission_deniedGoogle がアクセスを拒否しました:Play Console でサービスアカウントを招待し、財務データの閲覧と注文・サブスクリプションの管理の権限を付与してください。新しい権限の反映には最大 1 日かかることがあります。
- 502 google_play_credentials_invalid保存されているサービスアカウントキーを Google が拒否しました。キーに新しいものをアップロードしてください。
- 503 google_play_unavailableGoogle が時間内に応答しませんでした。数秒後に再試行してください。
#リクエスト例
curl https://www.aisplice.store/v1/google-play/verify \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"purchase_token": "PURCHASE_TOKEN_FROM_PLAY_BILLING"}'#レスポンス
{
"package_name": "com.example.app",
"subscribed": true,
"active": true,
"in_trial": false,
"state": "SUBSCRIPTION_STATE_ACTIVE",
"product_id": "vip_monthly",
"expiry_time": 1793000000,
"auto_renewing": true,
"acknowledged": true,
"test_purchase": false,
"order_id": "GPA.3300-1111-2222-44444..2",
"checked_at": 1790400000
}まだ解決しませんか?
リクエスト ID かエラーメッセージを送っていただければ、こちらで調査します。