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입니다. 자동 갱신 구독의 경우 가입 주문의 주문 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.
}
필드
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)

지연된 상품 교체에 관한 정보

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 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입니다.

메서드

get

정기 결제에 관한 메타데이터 가져오기

revoke

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