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

這個類別代表 androidpublisher 服務中的 SubscriptionPurchaseV2 物件。

regionCode

string

使用者在訂閱授權時的 ISO 3166-1 alpha-2 帳單國家/地區代碼。

lineItems[]

object (SubscriptionPurchaseLineItem)

訂閱項目的商品層級資訊。同一筆交易中的項目,應全部採用自動續約型方案,或全部採用預付方案。

startTime

string (Timestamp format)

授予訂閱項目的時間。未設定待處理的訂閱項目 (訂閱項目已建立,但在註冊期間仍在等待付款)。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

subscriptionState

enum (SubscriptionState)

訂閱項目的目前狀態。

latestOrderId

string

與訂閱購買交易相關聯的最新訂單 ID。對於自動續約型訂閱項目,如果尚未續約,則為註冊訂單的訂單 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)

第三方服務中的使用者帳戶 ID。

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

與透過「透過 Google 訂閱」功能所購買的商品相關聯的使用者個人資料。

SubscriptionState

訂閱項目可能處於的狀態,例如是否處於有效或已取消狀態。訂閱購買項目可以是全部自動續約型方案,也可以是全部預付方案。

列舉
SUBSCRIPTION_STATE_UNSPECIFIED 未指定的訂閱狀態。
SUBSCRIPTION_STATE_PENDING 訂閱項目已建立,但在註冊期間仍在等待付款。在這個狀態下,所有項目都處於等待付款的狀態。
SUBSCRIPTION_STATE_ACTIVE 訂閱方案有效。- (1) 如果訂閱項目是自動續訂型方案,至少有一項項目會啟用 autoRenewEnabled 且未到期。- (2) 如果訂閱方案為預付方案,至少有一項項目未過期。
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)

系統自動恢復訂閱的時間。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

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 判斷使用者是否仍有存取權。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

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

第三方服務中的使用者帳戶 ID。

JSON 表示法
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
欄位
externalAccountId

string

第三方服務中的使用者帳戶 ID。只有在訂閱購買流程中發生帳戶連結時才會顯示。

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,

  // 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)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  }
}
欄位
productId

string

所購買產品的 ID (例如「monthly001」)。

expiryTime

string (Timestamp format)

訂閱項目到期或將到期 (除非延長存取權,例如續訂) 的時間。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

聯集欄位 plan_type。訂閱方案類型。plan_type 只能是下列其中一項:
autoRenewingPlan

object (AutoRenewingPlan)

項目會自動續約。

prepaidPlan

object (PrepaidPlan)

已預付商品費用。

offerDetails

object (OfferDetails)

此商品的優惠詳細資料。

聯集欄位 deferred_item_change。當項目有延遲變更時,就會出現這個欄位。可以移除或更換。deferred_item_change 只能是下列其中一項:
deferredItemReplacement

object (DeferredItemReplacement)

延後商品換貨的相關資訊。

signupPromotion

object (SignupPromotion)

此商品的促銷活動詳細資料。只有在註冊期間套用促銷優惠時才會設定。

AutoRenewingPlan

自動續訂方案的相關資訊。

JSON 表示法
{
  "autoRenewEnabled": boolean,
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
欄位
autoRenewEnabled

boolean

如果訂閱項目目前設為自動續訂 (例如使用者未取消訂閱)

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)

使用者價格異動生效的續約時間。由於暫停等情況可能會導致續約時間改變,因此這項規定日後可能會有所變動。只有在價格異動尚未生效時,這個欄位才會填入資料。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

PriceChangeMode

價格變更模式。

列舉
PRICE_CHANGE_MODE_UNSPECIFIED 未指定價格異動模式。這個值不應設為此值。
PRICE_DECREASE 訂閱價格調降。
PRICE_INCREASE 如果訂閱價格調漲,使用者必須接受漲價方案。
OPT_OUT_PRICE_INCREASE 如果訂閱價格在選擇不接受模式下調漲。

PriceChangeState

價格異動的狀態。

列舉
PRICE_CHANGE_STATE_UNSPECIFIED 未指定價格異動狀態。請勿使用此值。
OUTSTANDING 等待使用者同意價格異動。
CONFIRMED 使用者已確認價格異動。
APPLIED 價格異動已套用,也就是說,系統已開始向使用者收取新價格。

InstallmentPlan

分期付款方案的資訊。

JSON 表示法
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
欄位
initialCommittedPaymentsCount

integer

使用者最初承諾的付款總數。

subsequentCommittedPaymentsCount

integer

在每個承諾期結束後,使用者將承諾支付的次數總數。如果為空白,表示分期付款方案會在初始承諾期過後改為一般自動續訂方案。

remainingCommittedPaymentsCount

integer

這個續約週期內,仍須支付的承諾付款總數。

pendingCancellation

object (PendingCancellation)

如果有這個值,表示分期付款方案正在等待取消。只有在使用者完成所有已提交的付款後,系統才會取消訂閱。

PendingCancellation

這個類型沒有任何欄位。

這項指標可用來判斷虛擬分期付款方案是否有待取消的訂單。只有在使用者完成所有已提交的付款後,系統才會取消訂閱。

PrepaidPlan

與預付方案相關的資訊。

JSON 表示法
{
  "allowExtendAfterTime": string
}
欄位
allowExtendAfterTime

string (Timestamp format)

如果有此屬性,則預付方案會在該時間過後才允許購買儲值金。已過期的預付方案不會顯示這個欄位。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

OfferDetails

與購買委刊項相關的商品詳細資料。

JSON 表示法
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
欄位
offerTags[]

string

與優惠相關聯的最新優惠標記。包括從基本方案繼承的標記。

basePlanId

string

基本方案 ID。適用於所有基本方案和優惠。

offerId

string

優惠 ID。僅適用於折扣商品。

DeferredItemReplacement

延後商品換貨的相關資訊。

JSON 表示法
{
  "productId": string
}
欄位
productId

string

productId 會取代現有的 productId。

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)

已套用一次性代碼。

vanityCode

object (VanityCode)

已套用自訂代碼。

OneTimeCode

這個類型沒有任何欄位。

一次性促銷代碼。

VanityCode

可重複使用的預先定義促銷代碼。

JSON 表示法
{
  "promotionCode": string
}
欄位
promotionCode

string

促銷代碼。

方法

get

取得訂閱項目的中繼資料

revoke

撤銷使用者的訂閱購買交易。