消費型アイテムの作り方
アプリ内で販売することのできる課金アイテムには用途に応じて次の3種類があります。
- 非消費型
1回購入したらそれ以降は購入できない
- 消費型
いくつでも購入可能
- 定期購読型
月間や年間のように一定期間が過ぎたら自動で課金
ここでは何回でも購入できる消費型のアイテムの作り方を紹介します。
またInAppBillingはバージョン3のAPIを使っています。
アイテムの追加
まずGoogleDeveloperの画面を開きます。
そしてアプリを選び、メニューから「アプリ内アイテム」をクリックし、そこでアイテムの追加を選んでアイテムの種類とIDを追加します。
ただし、消費型のアイテムの種類には「管理対象外のアイテム」を選択します。(もしない場合は「管理対象のアイテム」を選択してください。)
あとはそのアイテムのタイトルや説明を書けばOKです。
アイテムの消費
消費型のアイテムの場合は購入後にアイテムを消費する処理が必要になります。
例えばonActivityResultで購入結果を受け取るとき、次のような処理をします。
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == 12345){ Bundle ownedItems; ownedItems = billingService.getPurchases( 3, getPackageName(), "inapp", null); if(ownedItems.getInt("RESPONSE_CODE") != 0){ return; } ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST"); /// 購入された全てのアイテムの情報 for(String purchaseData : purchaseDataList){ JSONObject obj = new JSONObject(purchaseData); String purchaseToken = obj.optString( "token", obj.optString("purchaseToken")); billingService.consumePurchase( 3, getPackageName(), purchaseToken); ///アイテムを消費 } } }
購入されたアイテムのデータ一覧を取得してそれをIInAppBillingServiceクラスのconsumePurchaseで1つずつ消費していっています。
これをすることでアイテムを購入したアカウントからアイテムを削除して再び購入できるようになります。
関連項目
© Kaz