Googleは、Google Play Developer APIを介してレシート検証を提供します。API内には、Purchases.products:getとPurchases.subscriptions:getの2つのエンドポイントがあります。
Purchases.products: get
自動更新以外の製品の購入を確認するために使用できます。これPurchases.subscriptions: get
は、自動更新製品のサブスクリプションを確認および再確認するためのものです。
あなたが知っている必要がありますいずれかのエンドポイントを使用するにはpackageName
、productId
、purchaseToken
これらのすべては、あなたが購入に受信したペイロードに記載されています。また、access_token
GoogleAPIサービスアカウントを作成して取得できるものも必要です。
サービスアカウントの使用を開始するには、まずGoogle PlayデベロッパーコンソールのAPIアクセス設定ページに移動し、[新しいプロジェクトの作成]ボタンをクリックします。
これで、新しいリンクプロジェクトといくつかの新しいセクションが表示されます。[サービスアカウント]セクションで、[サービスアカウントの作成]ボタンをクリックします。
サービスアカウントを作成する手順が記載された情報ボックスが表示されます。Google Developers Consoleへのリンクをクリックすると、新しいタブが表示されます。
次に、[新しいクライアントIDの作成]をクリックし、オプションから[サービスアカウント]を選択して、[クライアントIDの作成]をクリックします。
JSONファイルがダウンロードされます。これは交換に使用するJSONWebトークンaccess_token
なので、安全に保管してください。
次に、タブをGoogle Playデベロッパーコンソールに戻し、情報ボックスで[完了]をクリックします。リストに新しいサービスアカウントが表示されます。サービスアカウントの電子メールの横にある[アクセスを許可する]をクリックします。
次に、[このユーザーの役割の選択]で、[財務]を選択し、[ユーザーの追加]をクリックします。
これでサービスアカウントが設定され、領収書の検証を実行するために必要なすべてのアクセス権があります。次は、JWTをaccess_tokenと交換します。
access_token
あなたがそうこれを処理すると、Googleは、この(網羅的ではないリスト)を処理するために多くの言語で、いくつかのライブラリを提供しているいくつかのサーバーコードを必要と為替の1時間後に期限切れになります:
これらのライブラリの使用方法に関するドキュメントがたくさんあるため、詳細には触れませんがhttps://www.googleapis.com/auth/androidpublisher
、OAuth2スコープclient_email
として、JWTissuer
から、private_key
およびから取得できる公開鍵を使用することをお伝えします。パスフレーズnotasecret
はに使用されますsigning_key
。
準備ができたらaccess_token
(少なくとも次の1時間は、上記の段落と同じプロセスに従って新しいものをリクエストする必要があります)。
消耗品(自動更新ではない)購入のステータスを確認するには、次の宛先にhttpget
リクエストを送信します。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はサービスアカウントのアクセスが不十分であることを意味します。GooglePlayデベロッパーコンソールでアクセスアカウントのファイナンスが有効になっていることを確認してください。
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
対象がサブスクリプションの期間に応じて変更することになります。
検証をお楽しみください!