REST Resource: purchases.subscriptions

리소스: SubscriptionPurchase

SubscriptionPurchase 리소스는 사용자의 정기 결제 구매 상태를 나타냅니다.

JSON 표현
{
  "kind": string,
  "startTimeMillis": string,
  "expiryTimeMillis": string,
  "autoResumeTimeMillis": string,
  "autoRenewing": boolean,
  "priceCurrencyCode": string,
  "priceAmountMicros": string,
  "introductoryPriceInfo": {
    object (IntroductoryPriceInfo)
  },
  "countryCode": string,
  "developerPayload": string,
  "paymentState": integer,
  "cancelReason": integer,
  "userCancellationTimeMillis": string,
  "cancelSurveyResult": {
    object (SubscriptionCancelSurveyResult)
  },
  "orderId": string,
  "linkedPurchaseToken": string,
  "purchaseType": integer,
  "priceChange": {
    object (SubscriptionPriceChange)
  },
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string,
  "profileId": string,
  "acknowledgementState": integer,
  "externalAccountId": string,
  "promotionType": integer,
  "promotionCode": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
필드
kind

string

이 종류는 androidpublisher 서비스의 subscriptionPurchase 객체를 나타냅니다.

startTimeMillis

string (int64 format)

에포크 이후 구독이 부여된 시간(밀리초)입니다.

expiryTimeMillis

string (int64 format)

에포크 이후 구독이 만료되는 시간(밀리초)입니다.

autoResumeTimeMillis

string (int64 format)

에포크 이후 구독이 자동으로 재개되는 시간(밀리초)입니다. 사용자가 정기 결제 일시중지를 요청한 경우에만 표시됩니다.

autoRenewing

boolean

현재 만료 시간에 도달하면 정기 결제가 자동으로 갱신되는지 여부입니다.

priceCurrencyCode

string

정기 결제 가격의 ISO 4217 통화 코드입니다. 예를 들어 가격이 영국 파운드로 지정되어 있으면 priceCurrencyCode는 'GBP'입니다.

priceAmountMicros

string (int64 format)

정기 결제 가격. 세금 미포함 국가의 경우 가격에 세금이 포함되지 않습니다. 세금이 포함된 국가의 경우 가격에 세금이 포함됩니다. 가격은 마이크로 단위로 표시되며, 1,000,000 마이크로 단위는 통화의 1 단위를 나타냅니다. 예를 들어 정기 결제 가격이 €1.99인 경우 priceAmountMicros는 1990000입니다.

introductoryPriceInfo

object (IntroductoryPriceInfo)

정기 결제의 신규 할인 가격 정보입니다. 신규 할인 가격으로 정기 결제를 구매한 경우에만 제공됩니다.

이 필드는 정기 결제가 현재 신규 할인 가격 기간임을 나타내지 않습니다.

countryCode

string

구독이 부여된 시점의 사용자의 ISO 3166-1 alpha-2 청구서 수신 국가/지역 코드입니다.

developerPayload

string

주문에 대한 추가 정보가 포함된 개발자 지정 문자열입니다.

paymentState

integer

구독의 결제 상태입니다. 가능한 값은 0입니다. 결제 보류 중 1. 지급 완료 2. 무료 체험판 3. 지연된 업그레이드/다운그레이드 대기 중

취소되고 만료된 구독에는 표시되지 않습니다.

cancelReason

integer

정기 결제가 취소되었거나 자동 갱신되지 않는 이유입니다. 가능한 값은 0입니다. 사용자가 정기 결제를 취소했습니다. 1. 예를 들어 결제 문제 2로 인해 시스템에서 구독이 취소되었습니다. 정기 결제가 새 정기 결제로 대체되었습니다. 3. 개발자가 구독을 취소함

userCancellationTimeMillis

string (int64 format)

사용자가 정기 결제를 취소한 시간으로, 에포크 이후 경과된 시간(밀리초)입니다. cancelReason이 0인 경우에만 표시됩니다.

cancelSurveyResult

object (SubscriptionCancelSurveyResult)

사용자가 정기 결제 취소 절차를 완료할 때 제공하는 정보 (취소 사유 설문조사)

orderId

string

구독 구매와 연결된 최근 반복 주문의 주문 ID입니다. 결제가 거부되어 구독이 취소된 경우 결제 거부된 주문의 주문 ID가 됩니다.

linkedPurchaseToken

string

이 정기 결제가 다음 중 하나인 경우 원래 구매의 구매 토큰입니다. 0. 취소되었지만 만료되지 않은 정기 결제 재가입 1. 이전 구독에서 업그레이드/다운그레이드

예를 들어 사용자가 처음에 가입하여 구매 토큰 X를 받은 후, 사용자가 구독을 취소하고 재가입 절차를 진행하여 (구독이 만료되기 전) 구매 토큰 Y를 받고 마지막으로 사용자가 구독을 업그레이드하고 구매 토큰 Z를 받았다고 가정해 보겠습니다. 구매 토큰 Z로 이 API를 호출하면 이 필드가 Y로 설정됩니다. 구매 토큰 Y로 이 API를 호출하면 이 필드가 X로 설정됩니다. 구매 토큰 X로 이 API를 호출하면 이 필드가 설정되지 않습니다.

purchaseType

integer

정기 결제 구매 유형입니다. 이 필드는 구매가 표준 인앱 결제 흐름을 사용하지 않은 경우에만 설정됩니다. 가능한 값은 0입니다. 테스트 (라이선스 테스트 계정에서 구매) 1. 프로모션 (예: 프로모션 코드로 구매)

priceChange

object (SubscriptionPriceChange)

사용 가능한 최신 가격 변경 정보입니다. 아직 적용되지 않은 정기 결제 가격 변경이 예정되어 있는 경우에만 표시됩니다.

새로운 가격으로 정기 결제가 갱신되거나 정기 결제가 취소되면 가격 변경 정보는 반환되지 않습니다.

profileName

string

구독을 구매한 시점의 사용자 프로필 이름입니다. 'Google을 통한 구독'으로 구매한 경우에만 표시됩니다.

emailAddress

string

구독을 구매한 시점의 사용자 이메일 주소입니다. 'Google을 통한 구독'으로 구매한 경우에만 표시됩니다.

givenName

string

정기 결제가 구매되었을 때 사용자의 이름입니다. 'Google을 통한 구독'으로 구매한 경우에만 표시됩니다.

familyName

string

정기 결제 상품을 구매한 사용자의 성입니다. 'Google을 통한 구독'으로 구매한 경우에만 표시됩니다.

profileId

string

구독을 구매한 시점의 사용자의 Google 프로필 ID입니다. 'Google을 통한 구독'으로 구매한 경우에만 표시됩니다.

acknowledgementState

integer

정기 결제 제품의 확인 상태입니다. 가능한 값은 0입니다. 아직 인정되지 않음 1. 확인됨

externalAccountId

string

서드 파티 서비스의 사용자 계정 식별자입니다. 정기 결제 구매 흐름의 일부로 계정 연결이 발생한 경우에만 표시됩니다.

promotionType

integer

이 구매에 적용된 프로모션 유형입니다. 이 필드는 구독을 구매할 때 프로모션이 적용되는 경우에만 설정됩니다. 가능한 값은 0입니다. 일회성 코드 1입니다. 배니티 코드

promotionCode

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를 사용하여 지정된 경우에만 표시됩니다.

IntroductoryPriceInfo

정기 결제의 신규 할인 가격 정보가 포함되어 있습니다.

JSON 표현
{
  "introductoryPriceCurrencyCode": string,
  "introductoryPriceAmountMicros": string,
  "introductoryPricePeriod": string,
  "introductoryPriceCycles": integer
}
필드
introductoryPriceCurrencyCode

string

신규 할인 구독 가격의 ISO 4217 통화 코드입니다. 예를 들어 가격이 영국 파운드로 지정되어 있으면 priceCurrencyCode는 'GBP'입니다.

introductoryPriceAmountMicros

string (int64 format)

정기 결제 신규 할인 가격(세금 제외) 통화는 priceCurrencyCode와 동일합니다. 가격은 마이크로 단위로 표시되며, 1,000,000 마이크로 단위는 통화의 1 단위를 나타냅니다. 예를 들어 정기 결제 가격이 €1.99인 경우 priceAmountMicros는 1990000입니다.

introductoryPricePeriod

string

ISO 8601 형식으로 지정된 신규 할인 가격 기간입니다. 일반적인 값은 'P1W'(1주), 'P1M'(1개월), 'P3M'(3개월), 'P6M'(6개월), 'P1Y'(1년)입니다.

introductoryPriceCycles

integer

신규 할인 가격을 제공할 결제 기간입니다.

SubscriptionCancelSurveyResult

사용자가 정기 결제 취소 절차를 완료할 때 제공하는 정보 (취소 사유 설문조사)

JSON 표현
{
  "cancelSurveyReason": integer,
  "userInputCancelReason": string
}
필드
cancelSurveyReason

integer

사용자가 설문조사에서 선택한 취소 사유입니다. 가능한 값은 0입니다. 기타 1. 이 서비스를 많이 사용하지 않음 2. 기술적 문제 3. 비용 관련 이유 4. 더 나은 앱을 찾음

userInputCancelReason

string

사용자의 맞춤설정된 입력 취소 사유입니다. cancelReason이 0인 경우에만 표시됩니다.

SubscriptionPriceChange

앱에서 가격 변경을 위한 사용자 여정을 관리하는 데 사용할 수 있는 정기 결제의 가격 변경 정보를 포함합니다. 사용자의 확인을 요청하거나 성공적인 전환을 위해 환경을 맞춤설정하는 형태일 수 있습니다.

JSON 표현
{
  "newPrice": {
    object (Price)
  },
  "state": integer
}
필드
newPrice

object (Price)

사용자가 가격 변경을 수락하면 정기 결제가 갱신됩니다.

state

integer

가격 변경의 현재 상태입니다. 가능한 값은 0입니다. 미결제: 사용자가 동의할 때까지 대기 중인 가격 변경에 관해 알립니다. 이 상태에서는 선택적으로 In-App API를 사용하여 사용자에게 확인을 요청할 수 있습니다. 1. 수락됨: 취소하지 않는 한 정기 결제가 갱신되는 수락된 가격 변경에 관해 명시합니다. 가격 변경은 향후 정기 결제가 갱신되는 날짜부터 적용됩니다. 다음에 구독이 갱신될 때는 변경사항이 적용되지 않을 수 있습니다.

방법

acknowledge

정기 결제 구매를 확인합니다.

cancel

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

defer

지정된 만료 시간까지 사용자의 정기 결제 구매를 연기합니다.

get

사용자의 정기 결제 구매가 유효한지 확인하고 만료 시간을 반환합니다.

refund

사용자의 정기 결제 구매를 환불하지만, 정기 결제는 만료일까지 유효하며 계속 반복됩니다.

revoke

사용자의 정기 결제 구매를 환불하고 즉시 취소합니다.