*

Androidで課金アプリ作製 サンプルコード(BILLING V3) 起動編

公開日: : 最終更新日:2013/11/29 Android, 開発 ,

Androidで課金アプリ作製 サンプルコード起動編

課金アプリの制作の機会が来てしまいました。
ネットでの情報は断片的な情報しか載ってないので、そのあたりのネタ+α情報です。

シリーズ

・Androidで課金アプリ作製 サンプルコード(BILLING V3) 起動編
Androidで課金アプリ作製 プロセス間通信予習編
Androidで課金アプリ作製 定期購読サンプルコード編

開発、動作環境

Eclipse Juno Service Release 2
Android 4.1.2 SC-06D
sample code TRIVIAL DRIVE – SAMPLE FOR IN-APP BILLING VERSION 3
In-app Billing Version 3
OS Windows7

予備知識

Google Play In-app Billing
英語は正直さっぱりです。チンパンジー以下の英語能力です。
Android デベロッパーヘルプ
ヘルプのアプリケーションの販売に目を通しておいも良いかもしれません。

前提知識

・android 開発環境
・Google Developers登録
おそらくこのブログに辿り着いた時点で開発環境は整ってると思います。
・Google Wallet Merchant Center
販売者用のアカウント開設が必要となります。時間を見つけてこの辺りも書きたいと思います。

注意事項

コンソールのUIに変更があったり、サンプルコードの変更があった場合は適宜読み替える必要があります。
登録やテスト等は自己責任でお願いします。

Google Play Developer Console

・アカウントの詳細編集
既に「ライセンス テスト」の項目にGoogleアカウントの登録があるのなら良いのですが、無しなら登録します。登録しないと動きません。動かせませんでした。
「お客様はこの購入を行えません。」と実機でデバッグの際にエラーが出ます。

・playに新しいアプリ「TrivialDraive」として登録
addApp

apkは無いので掲載情報を準備を選択し、サービスとAPIに移動します。
するとライセンスとアプリ内課金の所にキーが生成されてます。
addApp2
※グレーの部分にキーが表示されます。これをメモしておきます。

In-app Billing Version 3

自分のAndroid開発経験は今年からなのでVersion3から使用します。
それ以前のVersionに関しては知りません。

・ソースコードのダウンロード
Android SDK Manager → Extras → Google Play Billing Libraryをインストールします。
画像参照
GooglePlayBillibLibrary

・プロジェクトへの追加
インストール時にインストール先を変更していない場合は以下にダウンロードしたサンプルコードがあります。

C:\Users\[適宜変更]\AppData\Local\Android\android-sdk\extras\google\play_billing\samples

これをEclipseにインポートします。
ファイル → インポート → 選択(Android:Existing Android Code Into WorkSpace) → Import Project(Root Directory:サンプルコード置き場) → 完了
EclipceMainActivity
※デフォルトのプロジェクト名は「MainActivity」です。
※デフォルトのパッケージ名は「com.example.android.trivialdrive.*」
変更しないとplayに登録する際にエラーで弾かれます。

自分はさっぱりでしたが、READMEファイルは読んだ方が良いです。ヒントが書かれてます。

・販売するアイテム名の変更
MainActivity.java内の

 line:97 static final String SKU_PREMIUM = "item002"; ← 名前変更
 line:98 static final String SKU_GAS = "item001"; ← 名前変更

playに登録する際に文字列のみだと登録できないので名前変更してます。英数字で好きな名前でOKです。

・キーの変更
MainActivity.java内の

line:138 String base64EncodedPublicKey = "CONSTRUCT_YOUR_KEY_AND_PLACE_IT_HERE";

先程生成したキーに書き換えます。書き換えないと

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.trivialdrivesample/com.example.android.trivialdrivesample.MainActivity}: java.lang.RuntimeException: Please put your app’s public key in MainActivity.java. See README.]

とエラーが出て困ります。困りました。READMEファイルに書き換えろと書いてました。

・Manifest.xmlをの一部を書き換えます

package=”com.name.android.trivialdrivesample” ← 名前変更
android:name=”com.name.android.trivialdrive.MainActivity” ← 名前変更

com.example.*ではプレイストアに登録できません。com.example以外なら取り敢えずなんでもOKです。多分。
エラーになるのでパッケージ名も変更します。パッケージ名の所で「F2」で変更できます。
変更が完了したら前の画像のフォルダー構成になります。

・サンプルコードのログ出力を有効にする
util.IabHelper.javaの

line:74 boolean mDebugLog = true; ← ログ出力

次にapkファイルとして書き出します。
書き出し方はこの辺りを参考にEclipseからapkファイル作成

販売アイテムの登録

GooglePlayのコンソールに戻り書きだしたapkをアップロードします。
α版、β版、製品版とありますが、自分は製品版にしておきました。

アップロードが完了したら、アプリ内アイテムの項目に「+新しいサービスを追加」の項目が出現するので選択
addApp3
addApp4

・販売するアイテムを登録します
サービスIDを「item001」と「item002」で「管理対象の商品」で登録しました。
詳細内容は適当に書いてます。
ステータスに関してはどちらでも良いと思いますが、「有効」にしておきました。
addApp5

これで下準備が整いました。

実機でデバッグ

おそらく必要な手順は済んだので動かせるはずです。
作製したapkを実機に流し込みます。

C:\[apkを書きだしたフォルダー]> adb install TrivalDraive.apk

apkから流し込まないと署名の関係で
「このバージョンのアプリには、google playを通じたお支払いはご利用になれません。」と言うエラーが出ます。出ました。困りました。

起動するとこんなアプリでした
cs06d2.PNG

「BUY GAS」を選択すると支払い画面が出てきます。

cs06d3

後は購入が出来ればサンプルコードの動作は成功となります。
支払い完了のメールも飛んできます。
お疲れ様でした。

次回

Androidで課金アプリ作製 プロセス間通信予習編

関連記事

Macで ローカルサーバー構築 Postfix基本編

Macで ローカルサーバー環境を構築するまで Apache起動編 ネットでの情報は必要最低限しか載

記事を読む

jQuery Google画像検索風プラグイン

Google画像検索風プラグイン rc_gallery_open こういったプラグインは数多の開

記事を読む

Androidで課金アプリ作製 定期購読サンプルコード編

Androidで課金アプリ作製 定期購読編 In-app Billing v3を使用したアプリ開発

記事を読む

Macで ローカルサーバー構築 Apache設定編

Macで ローカルサーバー環境を構築するまで Apache設定編 ネットでの情報は必要最低限しか載

記事を読む

Androidで課金アプリ作製 エラー編(-1008:Unknown error)

Androidで課金アプリ作製 エラー編 In-app Billing v3を使用したアプリ開発で

記事を読む

PHP substr エスケープ処理で文字化け

PHP substr 文字化け mb_substrで文字コードを合わせて切り取ればOKって記事は沢

記事を読む

jQuery 水平スクロール&cssでカスタム可能なスクロールバーなプラグイン

水平スクロール&cssでカスタム可能なスクロールバーなプラグイン jQueryを使ったプラグインは

記事を読む

PHPでIE11ユーザーエージェント判定

IE11のユーザーエージェント判定 自作のユーザーエージェント判定クラスでIEの判定が出来てなかっ

記事を読む

C言語 バッファオーバーランまで ポインタ考察編

趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り合えずバッファオーバーランを目

記事を読む

PHPで指定日の祝日を取得する方法 GoogleAPI利用

google APIを利用して指定日が祝日かどうか取得する 技術的な内容を書く場合は載せてるコード

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

jQuery 水平スクロール&cssでカスタム可能なスクロールバーなプラグイン

水平スクロール&cssでカスタム可能なスクロールバーなプラグイン j

C言語 バッファオーバーランまで 関数の引数ポインタ

関数引数としてのポインタ 今回は関数引数としてのポインタに関して。

C言語 バッファオーバーランまで ポインタ考察編

趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り

Google Cloud Messaging プロジェクトナンバー API Key取得編 2014/07最新版

Google Cloud Messaging プロジェクトナンバー A

jQuery removeClass 特定のクラスを全て削除

特定のクラスを全て削除 フォームを作成した時に、入力項目に不備があっ

→もっと見る

PAGE TOP ↑