リファレンスの翻訳です。
原文はこちらです。
まだ幾つかドキュメントはありますが、In-app Billing Version3に関するドキュメントは一旦終了します。
アプリ内課金リファレンス
このドキュメントはアプリ内課金バージョン3を使った技術的なリファレンスです。
サーバのレスポンスコード
次の表はGooglePlayからアプリに対して送られる、サーバのレスポンスコードの全てです。
GooglePlayは同期的にレスポンスコードを送ります。(レスポンスBundleのRESPONSE_CODEキーにマッピングされているint型の値)
アプリは全てのレスポンスコードを処理しなければなりません。
表1.アプリ内課金バージョン3のAPI呼び出しのレスポンスコード一覧
レスポンスコード | 値 | 説明 |
---|---|---|
BILLING_RESPONSE_RESULT_OK | 0 | 成功 |
BILLING_RESPONSE_RESULT_USER_CANCELED | 1 | ユーザがバックキーを押した、またはダイアログをキャンセルした |
BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE | 3 | 課金APIのバージョンがリクエストしたタイプをサポートしていない |
BILLING_RESPONSE_RESULT_ITEM_UNAVAILABLE | 4 | リクエストされたサービスは購入できない状態にある |
BILLING_RESPONSE_RESULT_DEVELOPER_ERROR | 5 | APIに与えられた引数が無効。このエラーは署名が正しくない、アプリ内課金の設定がGooglePlayで行われていない、AndroidManifestに必要な権限がない。 |
BILLING_RESPONSE_RESULT_ERROR | 6 | APIの動作中に致命的なエラーが起こった。 |
BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED | 7 | アイテムが既に購入されているので失敗した。 |
BILLING_RESPONSE_RESULT_ITEM_NOT_OWNED | 8 | アイテムを所有していないために消費に失敗した。 |
APIリファレンス
アプリ内課金バージョン3のAPIは、バージョン3のサンプルアプリケーションに含まれるInAppBillingService.aidlファイルに定義されています。
getSkuDetails()メソッド
このメソッドはサービスIDに紐づくサービス詳細リストを返します。
GooglePlayから送られたレスポンスBundleは、クエリの結果がDETAILS_LISTキーをマップとするArrayList
詳細リストのそれぞれのString内には、1つのサービス(JSON形式)のサービス詳細が含まれます。
サービス詳細のJSON文字列のフィールドを、表2にまとめています。
表2.getSkuDetailsリクエストから返されるサービスアイテム詳細のJSONフィールドの説明
キー | 説明 |
---|---|
productId | 商品のサービスID |
type | アプリ内の購入タイプで、値は必ず「inapp」 |
price | 通貨記号を含むアイテムの価格のフォーマット。価格には消費税は含まれていない。 |
title | サービスのタイトル |
description | サービスの説明 |
getBuyIntent()メソッド
このメソッドは、RESPONSE_CODEキーに紐づくint型のレスポンスコードと
BUY_INTENTキーに紐づいたアプリ内アイテムの購入フローを起動するPendingIntentを返します。
PendingIntentを受け取ると、GooglePlayは注文データでレスポンスIntentを送ります。
レスポンスIntentから返されるデータを表3にまとめています。
表3.アプリ内課金のバージョン3の購入リクエストからのレスポンスデータ
キー | 説明 |
---|---|
RESPONSE_CODE | 購入が完了した場合は0それ以外はエラー |
INAPP_PURCHASE_DATA | 注文詳細を含むJSON形式の文字列。(表4のJSONフィールドの説明を参照) |
INAPP_DATA_SIGNATURE | 開発者の秘密鍵で署名された購入データの署名を含む文字列 |
表4は注文のレスポンスデータを返すJSONフィールドを説明しています。
表4.INAPP_PURCHASE_DATAのJSONフィールドの説明
フィールド | 説明 |
---|---|
orderId | トランザクションのためのユニークな注文ID。Google Walletの注文IDに対応します。 |
packageName | 購入の起点となったアプリのパッケージ |
productId | アイテムのサービスID。全てのアイテムはサービスIDを持っており、GooglePlayパブリッシャーサイト上のアプリのサービスリストで指定しなければいけません。 |
purchaseTime | 購入された時間。エポック時間からのミリ秒(1970/01/01). |
purchaseState | 注文の購入状態。可能な値は0 (購入)、1 (キャンセル)、2 (払い戻し). |
developerPayload | 注文に関する補足情報を含む開発者が指定した文字列。getBuyIntentリクエストを行う際にこのフィールドの値を指定する事ができます。 |
purchaseToken | 指定されたアイテムとユーザのペアのための購入を一意に識別するトークン |
getPurchases()メソッド
このメソッドは、現在ユーザが保有する未消費のサービスを返します。
表5はBundleとして返されるのレスポンスデータのリストです。
表5.getPurchasesリクエストのレスポンスデータ
キー | 説明 |
---|---|
RESPONSE_CODE | 0の場合は成功。それ以外はエラー。 |
INAPP_PURCHASE_ITEM_LIST | StringArrayList:アプリからの購入サービスIDを含むリスト。 |
INAPP_PURCHASE_DATA_LIST | StringArrayList:アプリからの購入詳細を含むリスト。(リスト内の各INAPP_PURCHASE_DATA項目に保存された詳細データのリストは表4を参照してください。) |
INAPP_DATA_SIGNATURE_LIST | StringArrayList:アプリからの購入の署名を含むリスト。 |
INAPP_CONTINUATION_TOKEN | ユーザが保有するアプリ内サービスの次のセットを検索するための継続トークン含む文字列。 これはユーザが保有するサービスが非常に多い場合のみ、GooglePlayサービスがセットします。 継続トークンがレスポンスに存在している場合は、getPurchasesを別に呼び出し、受信した継続トークンを渡さなければいけません。 後のgetPurchasesの呼び出しは、さらなる購入やおそらく別のトークンを返します。 |
0 件のコメント:
コメントを投稿