Androidのアプリ内課金「In-app Billing」の新バージョン「Version 3」を試してみた


In-app Billing Version 3 (Android Developers)

Google I/O 2013で発表されたAndroidのアプリ内課金API新バージョン「In-app Billing Version 3」を試してみました。いつものごとくだれが使っているのかわからない「Deathgrip Simulator」のバージョンアップ(1.1.2)に入れてみました。

【良かった点】

・従来APIではアプリ内課金を実現するためだけにServiceを定義しなければならず、常駐が好まれない性質のアプリには使いづらかったが、v3ではServiceの定義が必要なくなり適用範囲が広がった
・購入情報が端末(Google Play)にキャッシュされるようになったので、購入されたかどうかの情報をアプリ側が保持する必要がなくなりシンプルに(必要なタイミングでクエリしに行ける)
・実プロダクトIDでのテスト時に、Developer Consoleで登録したテストアカウントからの購入では課金されないようになったため、いちいち払い戻しの処理をする必要がなくなった。この際に「これはテスト用の注文です。課金は発生しません。」という表示が明確に行われるようになり安心。

【はまりポイント】

・ドキュメントがわかりづらい。ドキュメントにはAPIを直接たたくときの手順が記載されている一方、開発環境からダウンロードできるサンプルプロジェクトでは使いやすくするための中間ライブラリが提供されているため最初は混乱した。
・予約プロダクトID「android.test.purchased」を購入済みから未購入に戻す方法をドキュメントから見つけられず困った。自分の場合、アプリの起動ごとに購入済み商品をすべて消費するテストコード(API直接実行の場合はIInAppBillingServiceのconsumePurchaseメソッド)を入れて対応した。
・相変わらず開発者アカウントでは購入ができない(予約プロダクトIDによる購入テストは可能)。

Serviceが必要なくなったのと、購入情報がキャッシュされるようになったことで、アプリ側の実装がとても楽になった印象です。これから試す方は、ドキュメントをひとしきり読んだ上で(ドキュメントに記載した素の実装より)素直にサンプルプロジェクトのライブラリを使用するのがよいと思います。

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.