2012年12月28日金曜日

アプリ内課金バージョン3 (In-App Billing Version 3)

ここではAndroid DevelopersのIn-app Billing Version 3のページを訳してみました。バージョン 3では、管理商品("managed products")のみをサポートしています。管理商品では、Google Playがユーザのアイテム所有の有無を全て管理してくれます。また、消費商品("consumable products")が扱えるようになりました。消費商品とは、ゲーム内の通貨など、アイテムが消費されるたび、再度購入ができるようになります。

In-app Billing Version 3
In-app Billing version 3 APIではアプリ内課金を簡単にあなたのアプリに統合することが出来ます。このバージョンは、改良された同期購入フロー、消費商品の所有の記録を簡単に行えるAPIやアプリ内購入データのローカルキャッシュなどの特徴を含んでいます。

Product Types
Google Play Developer Consoleを使って、商品タイプ、SKU、値段、説明文など、商品を定義することができます。詳細は、Administering In-app Billingを見てください。Version 3 APIは管理商品 ("managed products") のみサポートしています。

Managed In-app Products
アプリ内管理商品(managed in-app products) は、Google Playによって管理され記録された所有情報を持つアイテムです。ユーザが管理アイテムを購入したとき、Google Playは各ユーザごと、各アイテムの購入情報を保存します。特定ユーザが購入したアイテムの状態を復元するために、いつでもGoogle Playにクエリを送ることができます。ユーザがアプリをアンインストールしたり、ディバイスを変更したとしても、この情報はGoogle Play サーバ上に保存してあります。

Version 3 APIを使用する場合、アプリの中で管理アイテムを消費することができます。何度も購入することができるアイテム (例えばゲーム内の通貨、燃料や魔力など) の消費を実装することができます。いったん消費アイテムが購入されると、Google Playに消費リクエストを送ることでそのアイテムが消費されるまで、再び購入することは出来ません。商品の消費に関しての詳細は、Consuming Itemsを見てください。

Purchasing Items
Version 3 APIの購入の流れは以下の通りです。

  1. 使っているアプリ内課金 API のバージョンがサポートされているか確認するために、アプリはGoogle PlayにisBillingSupportedリクエストを送る。
  2. アプリがスタートしたときやユーザがログインしたとき、何のアイテムをユーザが所有しているか確定するために、Google Playでチェックすることを推奨します。ユーザのアプリ内商品の検索には、getPurchasesリクエストを送ります。リクエストが成功したら、Google Playは購入アイテムの商品IDのリスト、個々の購入アイテムの詳細リスト、購入のためのサインのリストを含んだBundleを返します。
  3. 通常、購入できる商品をユーザを知らせたいと思います。Google Playで定義した商品の詳細を検索するために、getSkuDetailsリクエストを送ることができます。検索リクエストには、商品IDのリストを明記する必要があります。リクエストが成功したら、Google Playは商品の値段、タイトル、詳細、購入タイプを含んだBundleを返します。
  4. 商品がユーザによって所有されていなかったら、購入プロセスを始めることができます。購入リクエストを始めるには、購入するアイテムの商品IDを他のパラメータと一緒にを明記した getBuyIntent リクエストを送ります。Developer Consoleで新しい商品を作るとき、商品IDを記録する必要があります。
a. Google Playは購入のためのチェックアウトUIをスタートするのに使うPendingIntentを含んだBundleを返します。 b. アプリはstartIntentSenderForResutメソッドを呼ぶことによってpending intentを立ち上げます。 c. チェックアウトフローが終了したとき (ユーザがアイテムを購入もしくは購入をキャンセルしたとき)、Google PlayはonActivityResultメソッドにレスポンスIntentを送ります。onActivityResutの結果コードは購入が行われたかキャンセルされたかどうかを示す結果コードを持っています。レスポンスIntentは購入されたアイテムについての情報を含んでいます。この購入取引を特定するために、レスポンス Intentはgoogle Playによって発行されたpurchaseToken Stringを含んでいます。このIntentはprivate developer key にサインした購入サインも含んでいます。
Version 3 APIのコールについて更に学びたい場合、In-app Billing Referenceをみてください。

Consuming Items
商品のユーザの所有状態を監視するために消費メカニズム 使用することができます。


バージョン3では、全てのアプリ内商品は管理されています。これは全てのアイテム購入のユーザの所有がGoogle Playによって保持されていることを意味します。そしてアプリ側は必要なときにユーザの購入情報を検索することができます。ユーザがアイテムの購入に成功したとき、その購入情報はGoogle Playに記録されます。一旦アイテムが購入されると、それは所有された("owned") 状態と見なされます。"owned"状態のアイテムはGoogle Play から購入することはできません。 Google Playが再び購入を可能にする前に、"owned"アイテムの消費リクエストを送らなければいけません。アイテムを消費するということは、非所有("unwoned")状態に戻り、前の購入データを破棄するということです。

ユーザの所有している商品リストを検索するには、アプリ側はgetPurchasesコールをGoogle Playに送ることができます。アプリ側はconsumePurchaseコールを送ることによって消費リクエストを作ることができます。リクエストの中で、購入時にGoogle Playから手に入れたアイテムの固有のpurchaseToken Stringを明確にしなければいけません。消費の登録に成功したら、Google Playはステータスコードを返します。

Non-consumable and consumable items

アプリ内商品を消費アイテムにするか非消費アイテムにするかは、あなた自身で決められます。

Non-consumable items
通常、アプリ内で一度だけ購入することができ、永続してベネフィットを提供するアイテムなので消費を実装をする必要はありません。一度購入したら、アイテムはユーザのGoogleアカウントに関連づけられます。非消費アイテムの例としてはプレミアムアップグレードやレベルパックなどです。

Consumable items
何度も購入することができるアイテムで消費を実装することができます。通常これらのアイテムは一時的な効果を提供します。例えば、ユーザのゲーム内でのキャラクターがライフポイントを得るためや、ゴールドコインを手に入れるなどです。アプリの中で購入したアイテムのベネフィットや効果を施すことは、商品をプロビジョニングするといいます。どのように商品がユーザに提供されるのか、開発者は、それを管理し記録する責任があります。
重要:アプリの中で消費アイテムをプロビジョニングする前に、Google Playに消費リクエストを送り、消費が記録されたことを指し示すレスポンスを受け取らなければいけません。

Managing consumable purchases in your application
消費アイテムを購入するための基本的な流れは以下のとおりです。

  1. getBuyIntentコールで購入フローを始めます。
  2. 購入が完全に成功したかどうかを示すBundleをGoogle Playから受け取ります。
  3. 購入が成功したら、consumePurchaseコールを作ることによって、購入を消費することができます。
  4. 消費が成功したかどうかを示す返答コードをGoogle Playから得ます。
  5. もし消費が成功したら、アプリの中で商品をプロビジョンします。
その後、ユーザがアプリをスタートアップもしくはログインするときには、ユーザが未処理の消費アイテムを所有しているかどうか確認しなければいけません。その場合、それらのアイテムの消費とプロビジョンが出来ているかを確認してください。ここではアプリの中で消費アイテムを実装するための推奨されたアプリのスタートアップの流れです。

  1. ユーザが所有しているアイテムを検索するためにgetPurchases リクエストを送ります。
  2. 何か消費アイテムがあったら、consumePurchaseを呼ぶことによってアイテムを消費します。消費アイテムの購入オーダが完了していて、しかし、消費リクエストを送る機会を持つ前に、ストップしてしまったりアクセスが切られてしまう場合があるので、このプロセスは必要です。
  3. 消費が完了したかどうかを示すレスポンスコードをGoogle Playから得ます。
  4. 消費が成功したら、アプリの中の商品をプレビジョンします。
Local Caching
Google playクライアントが、ディバイス上にin-appBilling情報をキャッシュすることができるので、更に頻繁にこれらの情報を検索するのに、例えば、getPurchasesコールを通して、Version3 APIを使うことができます。前のバージョンのAPIとは違い、Version 3 APIのコールは、Google Playに繋ぐネットワークコネクションの代わりにAPIの返答時間を十分にスピードアプしたキャッシュ検索を通して提供されます。

0 件のコメント:

コメントを投稿