Google은 Google Play 개발자 API를 통해 영수증 확인을 제공합니다. API 내에서 가장 관심을 가질만한 두 가지 엔드 포인트는 Purchases.products : get 및 Purchases.subscriptions : get 입니다.
Purchases.products: get
비 자동 갱신 제품 구매를 확인하는 데 사용할 수 있습니다. 여기서는 Purchases.subscriptions: get
자동 갱신 제품 구독을 확인하고 다시 확인합니다.
당신이를 알고 있어야 하나 엔드 포인트를 사용하려면 packageName
, productId
, purchaseToken
이 모든 당신이 구입받은 페이로드에서 찾을 수 있습니다. 또한 access_token
Google API 서비스 계정을 만들어 얻을 수 있는 이 필요 합니다.
서비스 계정을 시작하려면 먼저 Google Play 개발자 콘솔 API 액세스 설정 페이지 로 이동하여 새 프로젝트 만들기 버튼을 클릭합니다.
이제 새로운 연결된 프로젝트와 몇 가지 새로운 섹션이 표시되어야합니다. 서비스 계정 섹션에서 서비스 계정 만들기 버튼을 클릭합니다.
서비스 계정을 만드는 방법이있는 정보 상자가 표시됩니다. Google Developers Console 링크를 클릭하면 새 탭이 생성됩니다.
이제 새 클라이언트 ID 만들기를 클릭하고 옵션에서 서비스 계정을 선택한 다음 클라이언트 ID 만들기를 클릭합니다.
JSON 파일이 다운로드됩니다. 이것은 교환에 사용할 JSON 웹 토큰 access_token
이므로 안전하게 보관하십시오.
그런 다음 탭을 Google Play 개발자 콘솔로 다시 전환하고 정보 상자에서 완료를 클릭합니다. 목록에 새 서비스 계정이 표시되어야합니다. 서비스 계정 이메일 옆에있는 액세스 권한 부여를 클릭합니다.
다음으로이 사용자의 역할 선택에서 재무를 선택하고 사용자 추가를 클릭합니다.
이제 서비스 계정을 설정했으며 영수증 확인을 수행하는 데 필요한 모든 액세스 권한이 있습니다. 다음은 JWT를 access_token으로 교환하는 것입니다.
은 access_token
교환 한 시간이 그렇게 일부 서버 코드는이 문제를 처리하기 위해 구글이 (완전한되지 목록)이 문제를 처리하기 위해 여러 언어로 여러 라이브러리를 제공하고 필요 후에 만료 :
이 라이브러리를 사용하는 방법에 대한 문서가 많이 있기 때문에 나는 세부 사항으로 가지 않을 것이다,하지만 난 당신이 사용하려는 언급 할 것이다 https://www.googleapis.com/auth/androidpublisher
는 OAuth2를 범위로 client_email
JWT에서와 같은 issuer
공개 키 당신이에서 얻을 수있는 private_key
및 암호 notasecret
는 signing_key
.
일단 당신은 access_token
갈 수 있습니다 (적어도 다음 시간 동안 위 단락의 동일한 프로세스에 따라 새로운 것을 요청하고 싶을 것입니다).
소모품 (자동 갱신 불가) 구매 상태를 확인하려면 다음 주소로 http get
요청을하십시오.https://www.googleapis.com/androidpublisher/v2/applications/com.example.app/purchases/products/exampleSku/tokens/rojeslcdyyiapnqcynkjyyjh?access_token=your_access_token
200 http 응답 코드를 받으면 모든 것이 계획대로 진행되고 구매가 유효합니다. 404는 토큰이 유효하지 않음을 의미하므로 구매가 사기 시도 일 가능성이 높습니다. 401은 액세스 토큰이 유효하지 않음을 의미하고 403은 서비스 계정에 액세스 권한이 부족함을 의미합니다 . Google Play 개발자 콘솔에서 액세스 계정에 재무 를 사용 설정 했는지 확인 하세요.
200의 응답은 다음과 유사합니다.
{
"kind": "androidpublisher#productPurchase",
"purchaseTimeMillis": long,
"purchaseState": integer,
"consumptionState": integer,
"developerPayload": string
}
각 속성에 대한 설명은 https://developers.google.com/android-publisher/api-ref/purchases/products를 참조 하세요 .
구독은 비슷하지만 끝점은 다음과 같습니다.
https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/subscriptions/subscriptionId/tokens/token?access_token=you_access_token
응답에는 다음 속성이 포함되어야합니다.
{
"kind": "androidpublisher#subscriptionPurchase",
"startTimeMillis": long,
"expiryTimeMillis": long,
"autoRenewing": boolean
}
참조 https://developers.google.com/android-publisher/api-ref/purchases/subscriptions을 속성 설명 및 참고 startTimeMillis
및 expiryTimeMillis
피사체가 가입 기간에 따라 변경 될 것입니다.
감사합니다!