REST Resource: purchases.subscriptionsv2

リソース: SubscriptionPurchaseV2

ユーザーの定期購入のステータスを示します。

JSON 表現
{
  "kind": string,
  "regionCode": string,
  "lineItems": [
    {
      object (SubscriptionPurchaseLineItem)
    }
  ],
  "startTime": string,
  "subscriptionState": enum (SubscriptionState),
  "latestOrderId": string,
  "linkedPurchaseToken": string,
  "pausedStateContext": {
    object (PausedStateContext)
  },
  "canceledStateContext": {
    object (CanceledStateContext)
  },
  "testPurchase": {
    object (TestPurchase)
  },
  "acknowledgementState": enum (AcknowledgementState),
  "externalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "subscribeWithGoogleInfo": {
    object (SubscribeWithGoogleInfo)
  }
}
フィールド
kind

string

この kind は、androidpublisher サービスの SubscriptionPurchaseV2 オブジェクトを示します。

regionCode

string

定期購入が承認された時点でのユーザーの請求先住所の国/地域コード(ISO 3166-1 alpha-2 形式)。

lineItems[]

object (SubscriptionPurchaseLineItem)

定期購入のアイテム単位の情報。同じ購入内のアイテムは、すべて AutoRenewingPlan を含むか、すべて PrepaidPlan を含む必要があります。

startTime

string (Timestamp format)

定期購入が承認された日時。保留中の定期購入(作成されて登録時の支払い待ちの状態)には設定されません。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

subscriptionState

enum (SubscriptionState)

定期購入の現在の状態。

latestOrderId
(deprecated)

string

非推奨: 代わりに lineItems.latest_successful_order_id を使用してください。定期購入に関連付けられた最新の注文のオーダー ID。autoRenewing 対象の定期購入については、新規登録注文のオーダー ID(未更新の場合)、または継続注文の最新のオーダー ID(完了、保留中、または不承認の注文)です。前払い定期購入の場合は、クエリされた購入トークンに関連付けられているオーダー ID です。

linkedPurchaseToken

string

次の場合、過去の定期購入の購入トークン。* 解約したが失効していない定期購入の再登録。* 以前の定期購入からのアップグレードまたはダウングレード。* 定期購入を前払いから自動更新に切り替える場合。* 定期購入を自動更新から前払いに切り替える場合。* 前払いの定期購入のチャージ。

pausedStateContext

object (PausedStateContext)

一時停止された定期購入に関する追加コンテキスト。subscriptionState が SUBSCRIPTION_STATE_PAUSED になっている定期購入の場合にのみ存在します。

canceledStateContext

object (CanceledStateContext)

解約された定期購入に関する追加コンテキスト。subscriptionState が SUBSCRIPTION_STATE_CANCELED または SUBSCRIPTION_STATE_EXPIRED になっている定期購入の場合にのみ存在します。

testPurchase

object (TestPurchase)

定期購入がテスト購入の場合にのみ存在します。

acknowledgementState

enum (AcknowledgementState)

定期購入の承認状態。

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

サードパーティ サービス内のユーザー アカウントの識別子。

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

「Google で購読」での購入に関連付けられたユーザー プロファイル。

SubscriptionState

定期購入が取る可能性のある状態(有効、解約済みなど)。定期購入内のアイテムは、すべて自動更新プランか前払いプランのいずれかです。

列挙型
SUBSCRIPTION_STATE_UNSPECIFIED 未指定の定期購入の状態。
SUBSCRIPTION_STATE_PENDING 定期購入が作成されて、登録時の支払い待ちの状態。この状態では、すべてのアイテムが支払い待ちです。
SUBSCRIPTION_STATE_ACTIVE サブスクリプションは有効です。-(1)定期購入が自動更新プランの場合、少なくとも 1 つのアイテムが autoRenewEnabled かつ有効期限内です。-(2)定期購入が前払いプランの場合、少なくとも 1 つのアイテムが有効期限内です。
SUBSCRIPTION_STATE_PAUSED 定期購入は一時停止中です。この状態になるのは、定期購入が自動更新プランの場合のみです。この状態では、すべてのアイテムが一時停止状態です。
SUBSCRIPTION_STATE_IN_GRACE_PERIOD 定期購入は猶予期間中です。この状態になるのは、定期購入が自動更新プランの場合のみです。この状態では、すべてのアイテムが猶予期間中です。
SUBSCRIPTION_STATE_ON_HOLD 定期購入は保留中(停止中)です。この状態になるのは、定期購入が自動更新プランの場合のみです。この状態では、すべてのアイテムが保留中です。
SUBSCRIPTION_STATE_CANCELED 定期購入は解約されましたが、まだ有効期限内です。この状態になるのは、定期購入が自動更新プランの場合のみです。すべてのアイテムで autoRenewEnabled が false に設定されています。
SUBSCRIPTION_STATE_EXPIRED 定期購入は期限切れです。すべてのアイテムの expiryTime が過去の時点になっています。
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED 定期購入の保留中の取引がキャンセルされました。この保留中の購入が既存の定期購入のものである場合、linkedPurchaseToken を使用して、その定期購入の現在の状態を取得します。

PausedStateContext

一時停止状態の定期購入に固有の情報。

JSON 表現
{
  "autoResumeTime": string
}
フィールド
autoResumeTime

string (Timestamp format)

定期購入が自動再開される日時。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

CanceledStateContext

SUBSCRIPTION_STATE_CANCELED または SUBSCRIPTION_STATE_EXPIRED 状態の定期購入に固有の情報。

JSON 表現
{

  // Union field cancellation_reason can be only one of the following:
  "userInitiatedCancellation": {
    object (UserInitiatedCancellation)
  },
  "systemInitiatedCancellation": {
    object (SystemInitiatedCancellation)
  },
  "developerInitiatedCancellation": {
    object (DeveloperInitiatedCancellation)
  },
  "replacementCancellation": {
    object (ReplacementCancellation)
  }
  // End of list of possible types for union field cancellation_reason.
}
フィールド
共用体フィールド cancellation_reason。定期購入が解約された理由。cancellation_reason は次のいずれかになります。
userInitiatedCancellation

object (UserInitiatedCancellation)

定期購入はユーザーによって解約されました。

systemInitiatedCancellation

object (SystemInitiatedCancellation)

定期購入は、請求に関する問題などにより、システムによって解約されました。

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

定期購入はデベロッパーによって解約されました。

replacementCancellation

object (ReplacementCancellation)

定期購入は新たな定期購入に置き換えられました。

UserInitiatedCancellation

ユーザーによる解約に固有の情報。

JSON 表現
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
フィールド
cancelSurveyResult

object (CancelSurveyResult)

ユーザーが定期購入解約フロー完了時に提供した情報(解約理由アンケート)。

cancelTime

string (Timestamp format)

定期購入がユーザーによって解約された日時。この日時以降もユーザーが定期購入を利用できる可能性があります。利用できるかどうかは、lineItems.expiry_time に基づいて判断されます。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

CancelSurveyResult

ユーザーが定期購入を解約した際の解約アンケートの結果。

JSON 表現
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
フィールド
reason

enum (CancelSurveyReason)

解約アンケートでユーザーが選択した理由。

reasonUserInput

string

CANCEL_SURVEY_REASON_OTHERS にのみ設定されます。アンケートに対するユーザーの自由記入形式の回答です。

CancelSurveyReason

解約アンケートでユーザーが選択した理由。

列挙型
CANCEL_SURVEY_REASON_UNSPECIFIED 解約アンケートの理由は指定されていません。
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE 定期購入を十分に活用しなかったため。
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES アプリ使用時の技術的な問題。
CANCEL_SURVEY_REASON_FOUND_BETTER_APP もっと良いアプリを見つけたため。
CANCEL_SURVEY_REASON_OTHERS その他の理由。

SystemInitiatedCancellation

この型にはフィールドがありません。

Google システムによる解約に固有の情報。

DeveloperInitiatedCancellation

この型にはフィールドがありません。

デベロッパーによる解約に固有の情報。

ReplacementCancellation

この型にはフィールドがありません。

定期購入の置き換えによる解約に固有の情報。

TestPurchase

この型にはフィールドがありません。

定期購入がテスト購入かどうかを示します。

AcknowledgementState

定期購入が取る可能性のある承認状態。

列挙型
ACKNOWLEDGEMENT_STATE_UNSPECIFIED 未指定の承認状態。
ACKNOWLEDGEMENT_STATE_PENDING 定期購入はまだ承認されていません。
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED 定期購入は承認されています。

ExternalAccountIdentifiers

サードパーティ サービス内のユーザー アカウントの識別子。

JSON 表現
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
フィールド
externalAccountId

string

サードパーティ サービス内のユーザー アカウントの識別子。定期購入フローの一環としてアカウントが連携された場合にのみ存在します。

obfuscatedExternalAccountId

string

アプリのユーザー アカウントに一意に関連付けられている難読化されたバージョンの ID。次の購入の場合に存在します。* 定期購入フローの一環としてアカウントが連携された場合。* 購入時に https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid を使用して指定された場合。

obfuscatedExternalProfileId

string

アプリのユーザー プロファイルに一意に関連付けられている難読化されたバージョンの ID。購入時に https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid を使用して指定された場合にのみ存在します。

SubscribeWithGoogleInfo

「Google で購読」での購入に関連付けられた情報。

JSON 表現
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
フィールド
profileId

string

定期購入が購入された際のユーザーの Google プロフィール ID。

profileName

string

定期購入が購入された際のユーザーのプロフィール名。

emailAddress

string

定期購入が購入された際のユーザーのメールアドレス。

givenName

string

定期購入が購入された際のユーザーの名前(名)。

familyName

string

定期購入が購入された際のユーザーの名前(姓)。

SubscriptionPurchaseLineItem

定期購入のアイテム単位の情報。

JSON 表現
{
  "productId": string,
  "expiryTime": string,
  "latestSuccessfulOrderId": string,

  // Union field plan_type can be only one of the following:
  "autoRenewingPlan": {
    object (AutoRenewingPlan)
  },
  "prepaidPlan": {
    object (PrepaidPlan)
  }
  // End of list of possible types for union field plan_type.
  "offerDetails": {
    object (OfferDetails)
  },

  // Union field deferred_item_change can be only one of the following:
  "deferredItemReplacement": {
    object (DeferredItemReplacement)
  },
  "deferredItemRemoval": {
    object (DeferredItemRemoval)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  }
}
フィールド
productId

string

購入したアイテムの ID(例: 「monthly001」)。

expiryTime

string (Timestamp format)

定期購入の期限が切れた日時、またはアクセスが延長されない限り(例: 更新)定期購入の期限が切れる予定の日時。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

latestSuccessfulOrderId

string

このアイテムに関連付けられた最新の成功した注文のオーダー ID。アイテムがまだユーザーに所有されていない場合(延期されたアイテムが交換された場合など)、存在しません。

共用体フィールド plan_type。定期購入プランのタイプ。plan_type は次のいずれかになります。
autoRenewingPlan

object (AutoRenewingPlan)

アイテムは自動更新します。

prepaidPlan

object (PrepaidPlan)

アイテムは前払いです。

offerDetails

object (OfferDetails)

このアイテムの特典詳細。

共用体フィールド deferred_item_change。このフィールドは、アイテムの変更が保留されている場合に存在します。削除または置き換えのいずれかです。deferred_item_change は次のいずれかになります。
deferredItemReplacement

object (DeferredItemReplacement)

保留されているアイテム置き換えの情報。

deferredItemRemoval

object (DeferredItemRemoval)

保留されているアイテム削除の情報。

signupPromotion

object (SignupPromotion)

このアイテムに関するプロモーションの詳細。登録時にプロモーションが適用された場合にのみ設定します。

AutoRenewingPlan

自動更新プランに関連する情報。

JSON 表現
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  },
  "priceStepUpConsentDetails": {
    object (PriceStepUpConsentDetails)
  }
}
フィールド
autoRenewEnabled

boolean

現在定期購入が自動更新に設定されている場合(例: ユーザーが定期購入を解約していない場合)

recurringPrice

object (Money)

自動更新プランの現在の定期購入価格。価格には割引は考慮されず、税抜価格の場合は税金は含まれません。取引の詳細が必要な場合は、代わりに orders.get API を呼び出してください。

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

定期購入の登録以降に行われた、アイテムに対する最新の価格変更の情報。

installmentDetails

object (InstallmentPlan)

自動更新プランの分割払いプランの契約および状態に関する情報。

SubscriptionItemPriceChangeDetails

定期購入アイテムの価格変更関連情報。

JSON 表現
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
フィールド
newPrice

object (Money)

定期購入アイテムの新しい定期購入価格。

priceChangeMode

enum (PriceChangeMode)

価格変更モードは、定期購入アイテムの価格がどのように変更されるかを示します。

priceChangeState

enum (PriceChangeState)

価格変更の現在の状態。

expectedNewPriceChargeTime

string (Timestamp format)

価格変更がユーザーに対して有効になる更新日時。一時停止などにより更新日時がずれる場合は、さらに先の日時に変更されます。このフィールドは、価格変更がまだ有効になっていない場合にのみ入力されます。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

PriceChangeMode

価格変更のモード。

列挙型
PRICE_CHANGE_MODE_UNSPECIFIED 価格変更モード未指定。この値は決して設定しないでください。
PRICE_DECREASE 定期購入価格が下がる場合。
PRICE_INCREASE 定期購入価格が上がり、ユーザーが同意する必要がある場合。
OPT_OUT_PRICE_INCREASE 定期購入価格が上がり、オプトアウト モードになっている場合。

PriceChangeState

価格変更の状態。

列挙型
PRICE_CHANGE_STATE_UNSPECIFIED 価格変更状態未指定。この値は使用しないでください。
OUTSTANDING ユーザーによる価格変更への同意を待っています。
CONFIRMED ユーザーに対する価格変更の実施が確定しました。
APPLIED 価格変更が適用され、ユーザーには新しい価格で請求されます。
CANCELED 料金の変更がキャンセルされました。

InstallmentPlan

分割払いプランについての情報。

JSON 表現
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
フィールド
initialCommittedPaymentsCount

integer

ユーザーが最初に契約した合計支払い回数。

subsequentCommittedPaymentsCount

integer

各契約期間後にユーザーが契約する合計支払い回数。空欄の場合、最初の契約後に分割払いプランは通常の自動更新定期購入に切り替わります。

remainingCommittedPaymentsCount

integer

この更新サイクル内で契約した支払い回数のうち残っている回数。

pendingCancellation

object (PendingCancellation)

存在する場合、この分割払いプランは解約保留中です。契約されているすべての支払いをユーザーが完了した場合にのみ解約が実施されます。

PendingCancellation

この型にはフィールドがありません。

仮想分割払いプランに保留中の解約があるかどうかの指標です。契約されているすべての支払いをユーザーが完了した場合にのみ解約が実施されます。

PriceStepUpConsentDetails

ユーザーの同意が必要な価格のステップアップに関する情報。

JSON 表現
{
  "state": enum (ConsentState),
  "consentDeadlineTime": string,
  "newPrice": {
    object (Money)
  }
}
フィールド
state

enum (ConsentState)

出力専用。価格引き上げの同意の状態。

consentDeadlineTime

string (Timestamp format)

ユーザーが同意を提供する必要がある期限。この期限までに同意が得られない場合、定期購入は解約されます。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

newPrice

object (Money)

ユーザーの同意が必要な新しい価格。

ConsentState

価格引き上げの同意の状態。

列挙型
CONSENT_STATE_UNSPECIFIED 同意の状態が指定されていません。
PENDING ユーザーがまだ同意していない。
CONFIRMED ユーザーが同意し、新しい価格が有効になるのを待っている状態です。
COMPLETED ユーザーが同意し、新しい価格が有効になりました。

PrepaidPlan

前払いプランに関する情報。

JSON 表現
{
  "allowExtendAfterTime": string
}
フィールド
allowExtendAfterTime

string (Timestamp format)

存在する場合、この日時より後に前払いプランのチャージ購入が可能になります。前払いプランの期限が切れている場合は存在しません。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

OfferDetails

購入項目に関する特典の詳細情報。

JSON 表現
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
フィールド
offerTags[]

string

特典に関連付けられた最新の特典タグ。基本プランから継承されたタグを含みます。

basePlanId

string

基本プラン ID。すべての基本プランおよび特典に対して存在します。

offerId

string

特典 ID。割引特典に対してのみ存在します。

DeferredItemReplacement

保留されているアイテムの置き換えに関する情報。

JSON 表現
{
  "productId": string
}
フィールド
productId

string

既存の productId に置き換わる productId。

DeferredItemRemoval

この型にはフィールドがありません。

保留されているアイテムの置き換えに関する情報。

SignupPromotion

購入時にこのアイテムに適用されたプロモーション。

JSON 表現
{

  // Union field promotion_type can be only one of the following:
  "oneTimeCode": {
    object (OneTimeCode)
  },
  "vanityCode": {
    object (VanityCode)
  }
  // End of list of possible types for union field promotion_type.
}
フィールド
共用体フィールド promotion_type。アイテムに適用されるプロモーションのタイプ。promotion_type は次のいずれかになります。
oneTimeCode

object (OneTimeCode)

1 回限りのコードが適用されました。

vanityCode

object (VanityCode)

バニティコードが適用されました。

OneTimeCode

この型にはフィールドがありません。

1 回限りのプロモーション コード。

VanityCode

複数回使用可能な事前定義済みのプロモーション コード。

JSON 表現
{
  "promotionCode": string
}
フィールド
promotionCode

string

プロモーション コード。

メソッド

cancel

ユーザーの定期購入をキャンセルします。

get

定期購入に関するメタデータを取得する

revoke

ユーザーの定期購入を取り消します。

エラーコード

このリソースのオペレーションは、次の HTTP エラーコードを返します。

エラーコード 理由 解決策
5xx Google Play サーバーの一般的なエラー。 リクエストを再試行してください。

問題が解決しない場合は、Google Play アカウント マネージャーにお問い合わせいただくか、サポート リクエストを送信してください。Google Play ステータス ダッシュボードで、既知のサービス停止がないか確認してください。

409 同時実行更新エラー。

更新中のオブジェクトを更新しようとしました。たとえば、Play Billing Library の acknowledgePurchase() メソッドを呼び出すと同時に、Play Developer API の purchases.products.acknowledge を呼び出すことで、購入が承認されます。

リクエストを再試行してください。
410 定期購入の購入は、有効期限が切れてから時間が経ちすぎているため、クエリで使用できなくなっています。 60 日以上前に期限切れになった定期購入をクエリするときにスローされます。これらの定期購入に対してクエリを実行しないでください。