2015年5月24日日曜日

[Android] In-app Billing v3を使ってライセンス購入を実装する

Androidアプリでアプリ内課金を行う場合、Google Play In-app Billingを使ってGoogle Playに決済を任せる設計が一般的&楽です。

アプリ内課金には、スポット課金(一度きりの購入)と定期購読(繰り返し自動課金)を使うことができ、スポット課金を利用するとアプリのライセンス購入を表現することができます。

最初は、無料でダウンロードしてもらって使ってみてもらい、気に入ったらライセンスを購入してもらって、加えていた制限(例えば利用期限だったり、機能制限だったり、広告非表示だったり、色々)を解除することが可能というわけです。

このアプリ内課金を実装するための手順は次の記事が参考になります。

Androidのアプリ内課金IABv2のサービス終了と新しいIABv3への移行方法 - Qiita

基本的には、挙げた記事の通り、環境を作って、Googleが提供しているサンプルを取り込んでゴチャゴチャやればOKなのですが、今後はシンプルにやりたいと思いましたので(=今回は初めててで結構苦戦しました)、ライセンス管理を行うユーティリティクラスをGoogleのサンプルをベースに作りましたのでGitHubで公開しておきます。ライセンスはMITです。

https://github.com/shinchit/LicenseManager

使い方は、次の通りです。



onActivityResultメソッドでは、特に購入処理の実行結果によってなんらかの処理を行う必要がなければ、シンプルにスーパークラスのonActivityResultに処理を転送すればOKです。

あと、実装以外にもライセンス購入の組み込みには色々と落とし穴もあるので、次の記事も必読です。

アプリ内課金の実機テストのワナ - GADGET FACTORY 雑記帳