API 參考
Google Play 訂閱驗證
POST
/v1/google-play/verify用這個 API key 上設定的服務帳戶(控制台 → API 金鑰 → 編輯 → Google Play 訂閱驗證)查詢 Google Play 購買憑證。結果直接來自 Google;閘道不收費,解鎖哪些功能由你的 App 決定。同一憑證的結果快取一分鐘。
#請求參數
purchase_tokenstring必填Play Billing 回傳的購買憑證。在 Flutter 的 in_app_purchase 裡就是 purchaseDetails.verificationData.serverVerificationData。
subscribed:只要是這個 App 的真實訂閱就為 true,包括已過期的;active:只有目前還能使用時才為 true。已取消的訂閱在 expiry_time 之前仍為 active,因為使用者只是關閉了自動續訂。in_trial:目前處於免費試用期時為 true,此時 expiry_time 就是試用結束時間。無法識別的憑證回傳 200,subscribed 為 false,state 為 NOT_FOUND。
怎麼設定 Google、怎麼在 Flutter App 裡呼叫、怎麼決定解鎖,見接入指南。 App 接入 Google Play 訂閱驗證 →
每次呼叫(包括命中快取和失敗的)都會出現在控制台 → 請求日誌裡,記為發起呼叫的那個 key 下一筆免費的「Google Play 驗證」,帶結果、訂單編號和憑證末尾幾位。可以在那裡用完整憑證、末尾幾位或訂單編號搜尋。這些記錄不計入請求數。
#相關錯誤碼
- 400 invalid_request請求主體不是 JSON,或缺少 purchase_token。
- 400 google_play_not_configured這個 API key 還沒有設定套件名稱和服務帳戶。
- 401Bearer 權杖無效或缺失。
- 429按 key 限制驗證次數:預設每分鐘 120 次,可由客服為單個 key 調高,目前上限顯示在 key 的 Google Play 設定裡。按 Retry-After 等待,並沿用上次的結果。
- 502 google_play_api_disabled服務帳戶所在的 Google Cloud 專案還沒有啟用 Google Play Android Developer API。啟用後幾分鐘再試。
- 502 google_play_permission_deniedGoogle 拒絕存取:請在 Play Console 邀請該服務帳戶,並授予檢視財務資料、管理訂單和訂閱的權限。新權限可能要一天左右才生效。
- 502 google_play_credentials_invalidGoogle 不接受已儲存的服務帳戶金鑰,請在 key 上重新上傳。
- 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"}'#回應
response.json
{
"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 或錯誤訊息傳給我們,我們來查。