- リソース: ProductPurchaseV2
- PurchaseStateContext
- PurchaseState
- TestPurchaseContext
- FopType
- ProductLineItem
- ProductOfferDetails
- RentOfferDetails
- ConsumptionState
- AcknowledgementState
- メソッド
リソース: ProductPurchaseV2
ProductPurchaseV2 リソースは、ユーザーのアプリ内アイテムの購入ステータスを示します。
| JSON 表現 |
|---|
{ "productLineItem": [ { object ( |
| フィールド | |
|---|---|
productLineItem[] |
ProductPurchaseV2 のアイテム単位の情報が含まれます。 |
kind |
この kind は、androidpublisher サービスの ProductPurchaseV2 オブジェクトを示します。 |
purchaseStateContext |
購入の購入ステータスに関する情報。 |
testPurchaseContext |
テスト購入に関する情報。これはテスト購入の場合にのみ設定されます。 |
orderId |
アプリ内アイテムの購入に関連付けられているオーダー ID。購入に関連付けられた注文がない場合は設定できません。 |
obfuscatedExternalAccountId |
アプリのユーザー アカウントに一意に関連付けられている難読化されたバージョンの ID。購入時に https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid を使用して指定された場合にのみ存在します。 |
obfuscatedExternalProfileId |
アプリのユーザー プロファイルに一意に関連付けられている難読化されたバージョンの ID。購入時に https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid を使用して指定された場合にのみ存在します。 |
regionCode |
アイテムが承認された時点でのユーザーの請求先住所の地域コード(ISO 3166-1 alpha-2 形式)。 |
purchaseCompletionTime |
購入が成功した時刻(PurchaseState が PURCHASED に変更された時刻)。このフィールドは、お支払いが完了するまで表示されません。たとえば、ユーザーが保留中の取引(https://developer.android.com/google/play/billing/integrate#pending)を開始した場合、このフィールドは、ユーザーが取引を完了するために必要な手順を正常に完了するまで入力されません。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
acknowledgementState |
出力専用。購入の承認状態。 |
PurchaseStateContext
購入状態に関するコンテキスト。
| JSON 表現 |
|---|
{
"purchaseState": enum ( |
| フィールド | |
|---|---|
purchaseState |
出力専用。購入の購入ステータス。 |
PurchaseState
購入ステータス。
| 列挙型 | |
|---|---|
PURCHASE_STATE_UNSPECIFIED |
購入ステータスが指定されていません。この値は決して設定しないでください。 |
PURCHASED |
購入が完了しました。 |
CANCELLED |
注文がキャンセルされました。 |
PENDING |
購入が保留中で、まだ完了していません。保留中の購入の処理について詳しくは、https://developer.android.com/google/play/billing/integrate#pending をご覧ください。 |
TestPurchaseContext
テスト購入に関するコンテキスト。
| JSON 表現 |
|---|
{
"fopType": enum ( |
| フィールド | |
|---|---|
fopType |
テスト購入の fop タイプ。 |
FopType
指定可能な fop タイプ。
| 列挙型 | |
|---|---|
FOP_TYPE_UNSPECIFIED |
Fop タイプが指定されていません。この値は決して設定しないでください。 |
TEST |
購入はテストカードを使用して行われました。 |
ProductLineItem
ProductPurchaseV2 のアイテム単位の情報が含まれます。
| JSON 表現 |
|---|
{
"productId": string,
"productOfferDetails": {
object ( |
| フィールド | |
|---|---|
productId |
購入したアイテムの ID(例: 「monthly001」)。 |
productOfferDetails |
このアイテムの特典詳細。 |
ProductOfferDetails
購入項目に関する特典の詳細情報。
| JSON 表現 |
|---|
{ "offerTags": [ string ], "offerId": string, "purchaseOptionId": string, "rentOfferDetails": { object ( |
| フィールド | |
|---|---|
offerTags[] |
特典に関連付けられた最新の特典タグ。購入オプションから継承されたタグを含みます。 |
offerId |
特典 ID。特典に対してのみ存在します。 |
purchaseOptionId |
購入オプション ID。 |
rentOfferDetails |
賃貸物件の特典の詳細情報。これはレンタル広告申込情報にのみ設定されます。 |
offerToken |
この購入広告申込情報を作成するために使用されたトランザクションごとのオファー トークン。 |
quantity |
アプリ内アイテムの購入に関連付けられている数量。 |
refundableQuantity |
払い戻しの対象となる数量(払い戻しが行われていない数量)。値には、数量ベースの一部払い戻しと全額払い戻しが反映されます。 |
consumptionState |
出力専用。購入の消費状態。 |
RentOfferDetails
この型にはフィールドがありません。
レンタル項目に関する特典の詳細情報。
ConsumptionState
考えられる消費状態。
| 列挙型 | |
|---|---|
CONSUMPTION_STATE_UNSPECIFIED |
使用状況の状態が指定されていません。この値は決して設定しないでください。 |
CONSUMPTION_STATE_YET_TO_BE_CONSUMED |
まだ消費されていません。 |
CONSUMPTION_STATE_CONSUMED |
すでに使用済みです。 |
AcknowledgementState
1 回限りのアイテムの承認状態。
| 列挙型 | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
未指定の承認状態。 |
ACKNOWLEDGEMENT_STATE_PENDING |
購入はまだ承認されていません。 |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
購入は承認されています。 |
メソッド |
|
|---|---|
|
アプリ内アイテムの購入と消費のステータスを確認します。 |
エラーコード
このリソースのオペレーションは、次の HTTP エラーコードを返します。
| エラーコード | 理由 | 説明 | 解決策 |
|---|---|---|---|
400 |
invalidPurchaseState |
購入が、リクエストされたオペレーションを実行できる有効な状態ではありません。たとえば、すでに使用済みの購入を承認しようとしている場合や、有効でない定期購入をキャンセルしようとしている場合などです。 | オペレーションを試行する前に、対応する Get API を使用してリソースの現在の状態を確認します。リソースがアクションに適した状態であることを確認します。 |
400 |
invalidValue |
リクエストで無効な値が指定されました。多くの場合、これは形式が正しくないか無効な購入トークンに対して返されます。 | API リファレンスに基づいて、リクエスト本文またはパラメータの無効なフィールド値を修正します。 |
400 |
productNotOwnedByUser |
提供された購入トークンは有効ですが、ユーザーは現在このアイテムを所有していません。これは、購入が払い戻し、取り消し、または期限切れになった後に確認が行われた場合に発生することがあります。 | オペレーションを試行する前に、対応する Get API を使用してリソースの現在の状態を確認します。リソースがアクションに適した状態であることを確認します。 |
400 |
purchaseTokenMismatch |
指定された購入トークンが、購入、パッケージ名、定期購入 ID、商品 ID と一致しません。 | リクエスト内のすべての詳細情報が正しく、相互に対応していることを確認します。 |
400 |
required |
リクエストに必須のフィールドまたはパラメータがありません。 | API のドキュメントを参照して、すべての必須フィールドとパラメータが含まれていることを確認します。 |
400 |
unsupportedIabType |
指定されたアプリ内課金タイプでは、このオペレーションはサポートされていません。 | API メソッドが管理対象のアイテムタイプと互換性があることを確認します。 |
403 |
userInsufficientPermission |
リクエストされたオペレーションを実行する権限がユーザーにありません。 | 認証済みユーザーが Google Play Console で必要な権限を持っていることを確認します。詳細については、 サービス アカウントの使用をご覧ください。 |
404 |
notFound |
リクエストされたリソースが見つかりませんでした。 | ID(購入トークン、パッケージ名、商品 ID、定期購入 ID など)が正しいことを確認します。 |
409 |
concurrentUpdate |
同時に更新されているオブジェクトを更新しようとしました。 | 指数バックオフを使用してリクエストを再試行します。同じリソースへの同時変更は避けてください。 |
5xx |
Generic error |
Google Play サーバーの一般的なエラー。 | リクエストを再試行してください。 問題が解決しない場合は、Google Play アカウント マネージャーにお問い合わせいただくか、サポート リクエストを送信してください。Google Play ステータス ダッシュボードで、既知のサービス停止がないか確認してください。 |