facebook twitter hatena line google mixi email

Android/アプリ内課金

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

Google Play Billing Libraryのインストール

  1. Android SDK Managerを開く
  2. Extras/Google Play Billing Libraryをinstallする

サンプルプロジェクトをコピーして開く

  1. SDKの下にサンプルプロジェクトがDLされているので開く(~/extras/google/play_billing/samples/TrivialDrive

ライセンスキー公開鍵確認

  1. Android Developer Consoleサイトを開く(https://play.google.com/apps/publish
  2. 上記サンプルプロジェクトのパッケージ名を(com.exampleから)適宜変更してのapkを作成
  3. Consoleサイトでアプリを作成してapkをアップロード
  4. 指定アプリのサービスとAPIの項目にRSA公開鍵が表示されているので確認。

アプリ内課金に必要なもの

  • AndroidManifest.xml (これがないとconsoleからアプリ内アイテムを追加できない。
   <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
   <uses-permission android:name="com.android.vending.BILLING" />

サンプルアプリを動かす

  1. MainActivity.javaを修正
// 以下公開鍵を書き換える
String base64EncodedPublicKey = "CONSTRUCT_YOUR_KEY_AND_PLACE_IT_HERE";
  1. 画面が出てくれば成功

アプリ内アイテムにアイテム追加

  1. Consoleサイトのアプリ内アイテムを選択
  2. 管理対象の商品を選択
  3. サービスIDは"test_product"などと入力
  4. 価格は最低が¥99なのでそのように入力
  5. 状態を有効に変更。(アプリが非公開であれば、公開はされない)
  6. アプリ側MainActivity.javaのSUK_GASに上で指定したサービスIDを設定
   static final String SKU_GAS = "test_product";

テスト用アカウント設定

テストなので課金は発生しない。

  1. Consoleの設定/アカウント
  2. テスト用Googleアカウントを登録する(開発アカウント以外で登録しないと購入できない)
  3. クレジットカードかキャリア決済かを選択。(一度入力すると次回からはクレジットは入力しなくてもOK
  4. 購入完了画面へ
  5. カード情報はhttps://wallet.google.com/manage から削除できる

課金タイプ

  • プレミアム課金(SKU_PREMIUM)・・・一度購入すると次回から購入できない
  • 都度課金(SKU_GAS)・・・一度購入しても再度購入可能

エラー対策「出版社はこのアイテムを購入できません」

  • 開発者アカウントで購入しようとするとこのエラーが出る
  • Playアプリのメニューからアカウントの変更を行う。

エラー対策「このバージョンのアプリは、google playを通じたお支払いはご利用になれません。詳しくはヘルプセンターをご覧ください。」

  • debug版でなくrelease版で実行するとなおる。

エラー対策「お客様はこの購入を行えません。」

  • 上にあるテスト用アカウント設定を追加する

参考