Androidでアプリ内課金テストを行う

# はじめに
Androidでアプリ内課金の実装を行う機会があったので
アプリ内課金のテストの実現を行うまでに必要なことを記事に残します

## 実現に向けて必要な対応
- GooglePlayConsoleにライセンスの登録
- アプリ内課金の実装
- テスト用アプリをリリース
- アプリ内課金アイテムの登録
- 課金アプリテスト用アカウントの登録
- 実際にテストを行う

##前提条件
AndroidStudioでの開発
GoogleのIn-app Billing Version 3 APIを使用

#GooglePlayConsoleにライセンスの登録
アプリ内課金テストを行う為には、実際にアプリをリリースする必要がありますので
PlayConsoleのライセンスを取得する必要があります。
一度取得すると年会費等はありませんが、取得時に25USD必要です。

**登録に最大48時間かかるので、テストをする前段階で事前に取得した方が良いかと思います。**

#アプリ内課金の実装
以下の記事がとても参考になりました。
この記事の内容は課金周りの処理方法がGoogleの公式サイトに記載されている
サンプルの内容と同じなので、全く同じようにすれば実現可能でした。

■参考サイト
http://kagasu.hatenablog.com/entry/2016/12/18/123141

■公式サイト
https://developer.android.com/google/play/billing/billing_integrate.html?hl=ja#billing-download

購入処理の実装時に指定した「アイテムID」は「アプリ内課金アイテムの登録」で使用するのでメモしておいてください。


#テスト用アプリをリリース
まずは以下の手順でアプリを作成します。
1.PlayConsoleにライセンスを取得したアカウントでログイン
2.左メニュー「すべてのアプリ」を選択
3.「アプリの作成」を選択
4.「デフォルトの言語」及び「タイトル」を入力します。

上記を行うとアプリの「スクリーンショット」やアプリの説明等の詳細情報を入力する画面が開かれます。

![スクリーンショット 2017-10-18 19.40.17.png](https://qiita-image-store.s3.amazonaws.com/0/207972/6cd90aa1-394e-86f0-5989-554984e6a115.png)

入力が完了してもアプリは公開されないので、「スクリーンショット」や
「簡単な説明」等の必須項目は仮の内容でも問題ありません。
必須項目を入力し、「未公開版を保存」を選択すると「すべてのアプリ」の一覧に表示されます。

上記まで終わると左メニューの「ストアの掲載情報」にチェックが入ると思います。
グレーのWarningのマークが全てチェックされればストアに公開可能な状態になります。
![スクリーンショット 2017-10-18 19.49.43.png](https://qiita-image-store.s3.amazonaws.com/0/207972/d87af950-bbc7-31c9-18c8-e7eb02a1d66f.png)

「コンテンツのレーティング」及び「価格と販売/配布地域」に関しては
アプリごとに適切に入力していただければ問題ありません。

次は左メニューの「アプリのリリース」を選択します。
すると以下の選択肢が現れます。
![スクリーンショット 2017-10-18 20.01.45.png](https://qiita-image-store.s3.amazonaws.com/0/207972/25adf684-2c0f-cfea-40c9-fa74c05bfae2.png)

一般的に以下の用途で使い分けすることが多いかと思います。
【アルファ版】
社内や一部のメンバーにのみ公開して、ストア公開前にアプリのフィートバックをしてもらう
【ベータ版】
社内や一部のメンバー、一部のユーザーにのみ公開して、ストア公開前にアプリのフィートバックをもらったり負荷等の実運用が問題無いかの確認を行う
【製品版】
全ユーザーが確認出来るストア公開版アプリ

アプリ内課金のテストに関してはアルファ版もしくはベータ版でテストを行います。
どちらでも構いませんが、アルファ版で進める前提で話を進めます。

1.「アルファ版を管理」を選択
2.「リリースを作成」を選択
3. apkをアップロード

【アップロード時の注意点】
・テスト用で作成したアプリのパッケージ名でもストアリリースと同様の扱いになるので、そのパッケージ名は二度と使えなくなります。
・アルファ版の公開でもGoogle Playへの反映には2~3時間かかります。

#アプリ内課金アイテムの登録
以下の手順でアプリ内アイテムを作成します。
1.左メニュー「すべてのアプリ」を選択
2.先ほど作成したアプリを選択
3.左メニュー「アプリ内サービス」を選択
4.「管理対象アイテムを作成」を選択

ここまでいくと以下の画面になります。

![スクリーンショット 2017-10-30 13.59.08.png](https://qiita-image-store.s3.amazonaws.com/0/207972/29885691-9155-0a7b-ffe9-95be45aacf70.png)

「アプリ内課金の実装」で購入処理に指定した「アイテムID」を入力してください。
その他の情報は、テスト段階であれば内容は仮で良いかと思います。

金額に関しては最低金額は「¥99」になるのでそれ以上の値の設定が必要です。
「保存」を選択でアイテムの作成が完了します。

#課金アプリテスト用アカウントの登録
先ほど開いていた「アプリのリリース」画面内の「アルファ版を管理」を選択しますと以下の画面が表示されます。

![スクリーンショット 2017-10-30 13.18.59.png](https://qiita-image-store.s3.amazonaws.com/0/207972/eb456104-e317-8ed6-fbba-1fa3f7880348.png)

上記の画像を参考に以下の手順を行います。
1.「テスト方法の選択」で「クローズド アルファ版テスト」を選択します。
2.「リストを作成」を選択します。
3.テスター用のアカウントのメールアドレスを登録します。
4.「保存」を行います。

アプリが公開中のステータスになると「オプトインURL」の中にURLが入ります。
このURLをテスター用のアカウントに共有します。
テスター用のアカウントからURLに飛ぶとストアからアプリをインストール出来るようになります。
※テスターの登録情報の反映には少し時間がかかります。

**上記まででアプリのインストールは可能ですが、この状態で課金テストを行うと
実際にユーザーのアカウントに購入したアイテムの金額が課金されてしまいます。**

上記で登録したアカウントはアプリの公開設定に関するもので、課金テストを行う為の設定は別途行う必要があります。

![スクリーンショット 2017-10-30 13.35.48.png](https://qiita-image-store.s3.amazonaws.com/0/207972/309816b6-ecb9-4681-15fa-5bfbbdff0eac.png)

1.左メニュー「すべてのアプリ」を選択
2.左メニュー「アカウントの詳細」を選択
3.「テスト用のアカウセス権があるGmailアカウント」で課金テスト用のGmailアカウントを入力する

ここまでを行うと、実際に作成したアプリの課金テストが可能になります。
![スクリーンショット 2017-10-30 14.26.25.png](https://qiita-image-store.s3.amazonaws.com/0/207972/ac24fb22-b67d-62b2-b9a8-495bf2857075.png)

※アプリ名は添削しています。

課金テスト時の注意点としては、「これはテスト用の注文です。課金は発生しません。」が
表示されていることを確認してから行いましょう。これが無いと実際に課金されます。


■参考サイト
http://kagasu.hatenablog.com/entry/2016/12/18/123141
https://developer.android.com/google/play/billing/billing_testing.html?hl=ja
https://developer.android.com/google/play/billing/billing_admin.html
https://support.google.com/googleplay/android-developer/answer/3131213?hl=ja