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)

정기 결제 구매의 항목 수준 정보입니다. 동일한 구매의 항목은 모두 AutoRenewingPlan이 있거나 모두 PrepaidPlan이 있어야 합니다.

startTime

string (Timestamp format)

정기 결제가 승인된 시간입니다. 대기 중인 정기 결제 (정기 결제가 생성되었지만 가입하는 동안 결제를 기다리는 중)에는 설정되지 않습니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

subscriptionState

enum (SubscriptionState)

정기 결제의 현재 상태입니다.

latestOrderId

string

정기 결제 구매와 관련된 최신 주문의 주문 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) 정기 결제가 자동 갱신 요금제인 경우 하나 이상의 항목이 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 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "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 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "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

서드 파티 서비스의 사용자 계정 식별자입니다.

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,

  // 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 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "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,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
필드
autoRenewEnabled

boolean

정기 결제가 현재 자동 갱신으로 설정된 경우입니다(예: 사용자가 정기 결제를 취소하지 않음).

recurringPrice

object (Money)

자동 갱신 요금제의 현재 반복 가격입니다.

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 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "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 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "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

사용자의 정기 결제 구매를 취소합니다.