Google Play Developer APIを利用したレシート検証の実装(1)

はじめに

直近の案件で、Androidアプリのアプリ内課金に対するレシート検証をサーバーサイドで行う処理を実装しました。これには、Google Play Developer APIを利用する必要があります。この記事では、APIを利用できるようにするための設定についてまとめます。

レシート検証とは

アプリ内での購入や購入取り消しなどをアプリストアにWebシステムから直接確認することで、その内容を検証することをいいます。
アプリからではなくサーバーサイドでレシート検証を行うことで、不正利用を防ぐことができます。

設定対象

  • Google Cloud Console
  • Google Play Console

設定概要

Googleサービスを利用するためにWebサービスやサーバーなどが用いる専用のアカウントであるサービスアカウントを作成し、利用します。サービスアカウントは通常のユーザーアカウントとは異なり、アプリケーションやシステムが使用することを目的として設計されています。今回のようにサーバーサイドでレシート検証を行う場合、サービスアカウントを通じてGoogleのAPIに認証・アクセスし、操作を実行します。

このサービスアカウントをGoogle Cloud Consoleにて作成し、操作対象となるサービスに対する権限の設定や、JSON形式の認証キーの生成を行います。また、作成したサービスアカウントをGoogle Play Consoleに登録・連携します。

また、今回は購入情報を取得するpurchases.products.get の呼び出しを目標に設定を進めることにします。

手順

Google Cloud Console

先ほど書いたように、Google Play ConsoleではAPIの有効化やサービスアカウントの作成、サービスアカウントキーの生成を行います。

以下、手順です。

  1. プロジェクトを作成、または対象となるプロジェクトに移動する

  2. APIを有効化する
    APIとサービス > ライブラリ で
    Google Play Android Developer API を選択して、「有効にする」で有効化する

  3. サービスアカウントを作成・設定する
    IAMと管理 > サービスアカウント で「+サービスアカウントを作成」から作成する
    以下の3ステップでフォームが表示されるので随時設定を進めます。

    1. サービスアカウントの詳細
      表示されたフォームに従って適宜入力します。
    2. 権限は サービスアカウント トークン作成者 を選択する
    3. この入力はスキップしてよい
  4. 登録すると、サービスアカウントの一覧が表示される
    この一覧の「プリンシパル」の列に表示されるメールアドレスをあとで利用します。

  5. サービスアカウントキーを生成する

    1. 該当するサービスアカウントの右列に「操作」のメニューがあるので、「鍵を管理」を選択する
    2. 「キーを追加」のプルダウンから「新しい鍵を作成」を選択する
      ※キーの形式を選択するダイアログが表示されます。今回はデフォルトのJSONで作成しましたが、プロジェクトに合わせて変更してください
    3. 生成されたキーがダウンロードされるので、安全な場所に保存する
      (画面を再読み込みすると、一覧に生成したキーの情報が追加される)

Google Play Console

次に、アプリ開発部分に先ほど作成したサービスアカウントの紐付けを行います。
以下、手順です。

  1. Google Cloud Console で作成したサービスアカウントを登録する
  2. ユーザーと権限 から「新しいユーザーを招待」する
  3. サービスアカウントのメールアドレスを登録する
  4. 権限を設定する
    • 売上データ、注文、解約アンケートの回答の閲覧
    • 注文と定期購入の管理

権限については、管理者権限があれば何も気にしなくてよいですが、上記2つがあれば大丈夫です。

これでAPIの利用設定ができました。

まとめ

Google Play Developer APIを利用するには、Google Cloud ConsoleとGoogle Play Consoleの2つで設定を行う必要があります。また、今回利用しなかったサービスアカウントキーはAPIを呼び出す際に必要となります。

次の記事で、Google Play Developer APIの利用におけるプログラム的な部分の内容をまとめようと思います。