「アイテム課金」の概要 [Android]
アイテム課金の種類
| ・消費型 |
| ・非消費型 |
| ・定期購入型 |
消費型、非消費型は同一のもので、アプリ側で消費させれば消費型となる。
アイテム課金の流れ
| 1. (アプリ側)アイテムの購入画面を表示する |
| 2. (ユーザー)アイテムの購入 |
| 3. (アプリ側)購入の承認 ※3日以内にアプリがアイテムの購入の承認を行わないと、自動的に返金される |
その後に、アイテムを消費型にする場合はアイテムを消費する。すると、再度、アイテムが購入可能となる。消費しなければ非消費型となり、同じアイテムは購入不可となる。
テスト
テストは実機かつリリース版APKでのみ可能。 ※エミュレータ不可
キャンセル
キャンセルは原則として48時間以内。48時間を経過するとアプリデベロッパーに連絡後、承諾を得た上で返金手続きを依頼する事になる。返金は各アプリで原則、1度しか受けられません。
参考サイト
Androidでアプリ内課金テストを行う
Androidのアプリ内購入を実装 Google Play Billing Library 2.0
補足
Google Play Consoleの開発者登録済みのGoogleアカウントとは別に、課金テスト用のGoogleアカウントが必要です。課金テスト用のアカウントは開発者登録の25ドルは不要です。(無料)
アイテムの消費のやり方は次のようにします。
// 購入済みアイテムの一覧を取得する
int getPurchasesList(BillingClient billingClient, ArrayList<Purchase> purchase) {
Purchase.PurchasesResult purchasesResult
= billingClient.queryPurchases(BillingClient.SkuType.INAPP);
int responseCode = purchasesResult.getResponseCode ();
if(responseCode== BillingClient.BillingResponseCode.OK){
List<Purchase> purchases = purchasesResult.getPurchasesList();
for (Purchase p : purchases) {
// 購入済み
if(Purchase.PurchaseState.PURCHASED == p.getPurchaseState()){
purchase.add(p);
}
}
}
return purchase.size();
}
// 課金アイテムの消費
// ※消費すると再度、購入が可能となる
void Consume(){
// 購入済みのアイテムを取得する
final ArrayList<Purchase> purchase = new ArrayList<>() ;
int size = getPurchasesList(billingClient, purchase);
// アイテムを消費する
for (int i=0;i<size;i++) {
// 承認済みのアイテムのみ消費を行う
if (purchase.get(i).isAcknowledged()) {
// 消費パラメータ
ConsumeParams params = ConsumeParams.newBuilder()
.setPurchaseToken(purchase.get(i).getPurchaseToken())
.build();
// 消費操作が終了
billingClient.consumeAsync(params, new ConsumeResponseListener() {
@Override
public void onConsumeResponse(BillingResult billingResult, String purchaseToken) {
int responseCode = billingResult.getResponseCode();
// 購入トークンが一致する1つのPurchaseを取得する
Purchase p = null;
for (Purchase item : purchase) {
if (item.getPurchaseToken().equals(purchaseToken)){
p = item;
}
}
if (responseCode == BillingClient.BillingResponseCode.OK) {
// ココで消費完了なので、お好きな処理を行う
// p.getSku()
// p.getOrderId() などを使う
}
}
});
}
}
}
上記は「購入済み」(PURCHASED)のアイテムですが、その他に「保留中」(PENDING)、「不特定状態」(UNSPECIFIED_STATE)があります。
保留中の課金処理が不承認された場合は、1,2時間または数時間後に自動的に削除されます。保留中のアイテムは消費不可なので、そのまま放っておくだけです。以上でござる。
スポンサーリンク
関連記事
| 前の記事: | 証明書フィンガープリント(MD5/SHA1/SHA-256)を確認する [Android Studio] |
| 次の記事: | Androidから安全に独自のWebAPIを実行する [端末にパスワード保存] |
公開日:2020年06月09日
記事NO:02829
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









