API 레퍼런스
Google Play 구독 확인
/v1/google-play/verify이 API 키에 설정된 서비스 계정(콘솔 → API 키 → 편집 → Google Play 구독 확인)으로 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키별 확인 호출 한도: 기본값은 분당 120회이며, 지원팀이 키별로 올릴 수 있습니다. 한도는 키의 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이 저장된 서비스 계정 키를 거부했습니다. 해당 API 키에서 새 키를 업로드하세요.
- 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나 오류 메시지를 보내 주시면 확인해 드리겠습니다.