2012年5月29日

【Android】月額課金の実装を翻訳してみた 3


前回の続き:Androidの月額課金の実装を翻訳してみた 2

ターミナルでCentOSを触りながら翻訳をしているdommyです。
今日も元気に翻訳記事をアップしていきます。


定期的な購入とステータスの変更


ユーザが定期購読商品の購入が完了すると、Google Playからアプリへ通知されます。しかし、購入ステータスは一定の期間、変更される事はありませんので、定期的に支払いが行われます。Google Playはあなたのアプリの購入ステータスの変化を、支払いエラーが起きたかキャンセルされたかで定期購読商品の期限が切れるまで知ることが出来ません。

定期購読商品の継続期間中は、アプリは2回目以降の支払いに関するイベントを発生させる必要がありません。2回目以降の支払いに関してはGoogle Play側で自動的に行われ正しく課金されればアプリから知る事が出来ます。

定期購読商品の変更


定期購読商品に対して、開発者はModifying your Application Codeで説明されているいくつかの変更を加えたいかと思われます。

あなたのアプリの画面でユーザが定期購読商品を選択し購入する場合、すでに購入されている商品ではないかチェックした方が良いでしょう。もしすでに購入されている場合はあなたのアプリの画面で定期購読商品の表示はしない方が良いでしょう。

定期購読商品の管理


定期購読商品の作成と管理に関して、他のアプリ内課金と同様にDeveloper Consoleを利用します。

Developer Consoleでは、それぞれの商品に対して下記の設定が出来ます。

  • Purchase Type: 常に“subscription”に設定
  • Subscription ID: 定期購読商品ID
  • Publishing State: Unpublished/Published
  • Language: デフォルトの言語
  • Title:定期購読商品のタイトル
  • Description: 定期購読商品の説明
  • Price: 1回の支払いに対する値段(アメリカドル)
  • Recurrence: monthly/yearly
  • その他の通貨の値段
詳細はAdministering In-app Billingで確認して下さい。

Googe Play Android Developer API


Google PlayはHTTPベースのAPIを用意し、開発者からアプリの定期購読商品に対する状態やキャンセルを照会する事が出来るようになっております。このAPIはアプリケーションサーバから定期購読商品の管理をする為に作成されたもので、定期購読商品と他のサービスを拡張、統合する為に作られたものです。

APIの使用


上記で説明したAPIを使用する為に、Google APIs Consoleにプロジェクトを登録し、アプリがGoogle Play Android Developer APIを呼んだ時に表示されるClient IDとshared secretを受け取って下さい。すべてのAPIの呼び出しはOAuth 2.0を使用して認証されています。

1度アプリが登録されると、通常のHTTPメソッドを使用し照会や操作をする事や、APIをサポートする為に拡張されたGoogle APIs Client Librariesを使用する事で、開発者からAPIに直接アクセス出来ます。

Google Play Android Developer APIはRESTfulデザインで設計されていて、HTTPメソッドとJSON形式のレスポンスを使用していますので、通常のwebアプリでリクエストの送信とレスポンスの読み取りが可能です。ただし、手動でHTTPベースのリクエストの送信やレスポンスの読み取りを行いたくない場合、client librariesを利用しAPIにアクセス出来ます。こちらを使用すれば
言語対応、セキュリティーの向上、ユーザの認証を提供しています。

詳しい情報に関しては下記のドキュメントを参照して下さい。
https://developers. google.com/android-publisher/v1/

割り当て


Google Play Android Developer APIを利用するアプリは、APIの利用を1日、1アプリあたり15000回の初期利用可能回数として割り当てられています。この数字は通常の定期購読商品の照会に関して必要十分だと認識しています。

この上限以上のリクエスト回数をアプリに割り当てたい場合はGoogle APIs Consoleの"Request More"リンクを利用して下さい。さらに、下記のAPIの利用回数を少なくする方法も読んで下さい。

承認


Google Play Android Developer APIの呼び出しは承認を必要としています。GoogleはOAuth2.0方式を使用しアプリケーションがユーザのデータへアクセスする事を可能にしています。詳しくはUsing OAuth 2.0 for Web Server Applicationsを参照して下さい。

APIの効果的な利用


Google Play Android Developer APIへのアクセスは、すべてのアプリケーションに対して良いパフォーマンスの環境を確保する手助けを規制します。あなたのアプリが毎日たくさんのリクエストを投げるようであれば、下記のチューニングテクニックをおすすめします。

  • サーバへ有効期間の保存 - アプリケーションサーバからGoogle Play Android Developer APIを利用し新しい購入トークンに対する有効期間を取得し、サーバに保存しておいて下さい。この方法でアプリは期限が切れた時のみ課金のチェックをする必要が出てきます。
  • 有効期限と購入ステータスの保存 - もしアプリからアプリケーションサーバへ実行時に定期購読商品の妥当性をチェックする場合、サーバに有効期限と購入ステータスを保存し、レスポンスを早くして下さい。
  • 定期購読のステータスチェックは期限切れ時のみ - サーバで購入トークンの期限切れを読み込んだ後は、その商品の期限切れが近づくか、実際切れた時までGoogle Playのサーバで購入ステータスのチェックをするべきではありません。dailyのバッチを走らせ、期限の切れたトークンに対する購入ステータスチェックを走らせ、データベースに保存して下さい。
    • すべての購読トークンに対してクエリを毎日発行してはいけません。
    • サーバから動的に購読ステータスのチェックをしてはいけません。動的チェックは端末内のアプリから行うべきです。
これらの方法でパフォーマンスの向上とAPIの効果的な使用に努めて下さい。


コラム:【App】スマホアプリで儲けるには

現在のAPIバージョンはv3です。【Android】In-App Billing API v3