REST Resource: purchases.subscriptions

Zasób: SubscriptionPurchase

Zasób SubscriptionPurchase wskazuje stan zakupu subskrypcji przez użytkownika.

Zapis 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
}
Pola
kind

string

Ten rodzaj reprezentuje obiekt subscriptionPurchase w usłudze androidpublisher.

startTimeMillis

string (int64 format)

Czas przyznania subskrypcji w milisekundach od początku epoki.

expiryTimeMillis

string (int64 format)

Czas wygaśnięcia subskrypcji w milisekundach od początku epoki.

autoResumeTimeMillis

string (int64 format)

Czas, w którym subskrypcja zostanie automatycznie wznowiona, w milisekundach od początku epoki. Występuje tylko wtedy, gdy użytkownik poprosił o wstrzymanie subskrypcji.

autoRenewing

boolean

Określa, czy subskrypcja zostanie automatycznie odnowiona po upływie bieżącego okresu ważności.

priceCurrencyCode

string

Kod waluty ceny subskrypcji w formacie ISO 4217. Jeśli na przykład cena jest podana w funtach brytyjskich, priceCurrencyCode to „GBP”.

priceAmountMicros

string (int64 format)

Cena subskrypcji. W krajach, w których podatek nie jest wliczony w cenę, cena nie zawiera podatku. W krajach, w których podatek jest wliczony w cenę, cena zawiera podatek. Cena jest wyrażona w mikrojednostkach, gdzie milion mikrojednostek odpowiada jednej jednostce waluty. Jeśli na przykład cena subskrypcji wynosi 1, 99 PLN, wartość priceAmountMicros to 1990000.

introductoryPriceInfo

object (IntroductoryPriceInfo)

Informacje o cenie dla nowych subskrybentów. Ta informacja jest widoczna tylko wtedy, gdy subskrypcja została kupiona w cenie początkowej.

To pole nie wskazuje, czy subskrypcja jest obecnie w okresie obowiązywania ceny dla nowych użytkowników.

countryCode

string

Kod kraju lub regionu rozliczeniowego użytkownika w formacie ISO 3166-1 alfa-2 w momencie przyznania subskrypcji.

developerPayload

string

Ciąg znaków określony przez dewelopera, który zawiera dodatkowe informacje o zamówieniu.

paymentState

integer

Stan płatności subskrypcji. Możliwe wartości: 0. Oczekująca płatność 1. Otrzymano płatność 2. Bezpłatny okres próbny 3. Oczekuje na odroczone przejście na wyższą lub niższą wersję

Nie występuje w przypadku anulowanych i wygasłych subskrypcji.

cancelReason

integer

Powód anulowania subskrypcji lub braku automatycznego odnawiania. Możliwe wartości: 0. Użytkownik anulował subskrypcję 1. Subskrypcja została anulowana przez system, np. z powodu problemu z płatnością. Subskrypcja została zastąpiona nową subskrypcją 3. Subskrypcja została anulowana przez dewelopera

userCancellationTimeMillis

string (int64 format)

Czas anulowania subskrypcji przez użytkownika w milisekundach od początku epoki. Występuje tylko wtedy, gdy cancelReason ma wartość 0.

cancelSurveyResult

object (SubscriptionCancelSurveyResult)

Informacje podane przez użytkownika podczas procesu anulowania subskrypcji (ankieta z pytaniem o powód rezygnacji).

orderId

string

Identyfikator ostatniego zamówienia cyklicznego powiązanego z zakupem subskrypcji. Jeśli subskrypcja została anulowana z powodu odrzucenia płatności, będzie to identyfikator zamówienia, w którym odrzucono płatność.

linkedPurchaseToken

string

Token zakupu pierwotnego zakupu, jeśli ta subskrypcja jest jedną z tych opcji: 0. Ponowna rejestracja anulowanej, ale nie wygasłej subskrypcji 1. Przechodzenie z poprzedniej subskrypcji na wyższą lub niższą wersję

Załóżmy na przykład, że użytkownik zarejestruje się i otrzymasz token zakupu X, a potem anuluje subskrypcję i ponownie się zarejestruje (zanim subskrypcja wygaśnie) i otrzymasz token zakupu Y, a na koniec użytkownik uaktualni subskrypcję i otrzymasz token zakupu Z. Jeśli wywołasz ten interfejs API z tokenem zakupu Z, to pole zostanie ustawione na Y. Jeśli wywołasz ten interfejs API z tokenem zakupu Y, to pole zostanie ustawione na X. Jeśli wywołasz ten interfejs API z tokenem zakupu X, to pole nie zostanie ustawione.

purchaseType

integer

Typ zakupu subskrypcji. To pole jest ustawiane tylko wtedy, gdy zakup nie został dokonany przy użyciu standardowego procesu rozliczeń w aplikacji. Możliwe wartości: 0. Test (czyli zakupiona na koncie testowania licencji) 1. Promocyjna (czyli kupiona przy użyciu kodu promocyjnego)

priceChange

object (SubscriptionPriceChange)

Najnowsze dostępne informacje o zmianach cen. Ten element jest widoczny tylko wtedy, gdy wkrótce nastąpi zmiana ceny subskrypcji, która nie została jeszcze zastosowana.

Gdy subskrypcja zostanie odnowiona z nową ceną lub anulowana, nie będą zwracane żadne informacje o zmianie ceny.

profileName

string

Nazwa profilu użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”.

emailAddress

string

Adres e-mail użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”.

givenName

string

Imię użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”.

familyName

string

Nazwisko użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”.

profileId

string

Identyfikator profilu Google użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”.

acknowledgementState

integer

Stan potwierdzenia subskrypcji. Możliwe wartości: 0. Niepotwierdzone 1. Potwierdzono

externalAccountId

string

Identyfikator konta użytkownika w usłudze zewnętrznej. Występuje tylko wtedy, gdy połączenie konta nastąpiło w ramach procesu zakupu subskrypcji.

promotionType

integer

Typ promocji zastosowanej w przypadku tego zakupu. To pole jest ustawiane tylko wtedy, gdy w momencie zakupu subskrypcji zastosowano promocję. Możliwe wartości: 0. Kod jednorazowy 1. Kod Vanity

promotionCode

string

Kod promocyjny zastosowany przy tym zakupie. To pole jest ustawiane tylko wtedy, gdy podczas zakupu subskrypcji zastosowano promocję z kodem niestandardowym.

obfuscatedExternalAccountId

string

Zaciemniona wersja identyfikatora, który jest jednoznacznie powiązany z kontem użytkownika w Twojej aplikacji. Występuje w przypadku tych zakupów: * jeśli połączenie konta nastąpiło w ramach procesu zakupu subskrypcji. * Został określony za pomocą https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid podczas dokonywania zakupu.

obfuscatedExternalProfileId

string

Zaciemniona wersja identyfikatora, który jest jednoznacznie powiązany z profilem użytkownika w Twojej aplikacji. Występuje tylko wtedy, gdy podczas zakupu został określony za pomocą parametru https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid.

IntroductoryPriceInfo

Zawiera informacje o cenie początkowej subskrypcji.

Zapis JSON
{
  "introductoryPriceCurrencyCode": string,
  "introductoryPriceAmountMicros": string,
  "introductoryPricePeriod": string,
  "introductoryPriceCycles": integer
}
Pola
introductoryPriceCurrencyCode

string

Kod waluty w formacie ISO 4217 dla ceny subskrypcji wprowadzającej. Jeśli na przykład cena jest podana w funtach brytyjskich, priceCurrencyCode to „GBP”.

introductoryPriceAmountMicros

string (int64 format)

Cena wprowadzająca subskrypcji bez podatku. Waluta jest taka sama jak priceCurrencyCode. Cena jest wyrażona w mikrojednostkach, gdzie milion mikrojednostek odpowiada jednej jednostce waluty. Jeśli na przykład cena subskrypcji wynosi 1, 99 PLN, wartość priceAmountMicros to 1990000.

introductoryPricePeriod

string

Okres obowiązywania ceny wprowadzającej podany w formacie ISO 8601. Typowe wartości to (między innymi) „P1W” (1 tydzień), „P1M” (1 miesiąc), „P3M” (3 miesiące), „P6M” (6 miesięcy) i „P1Y” (1 rok).

introductoryPriceCycles

integer

Liczba okresów rozliczeniowych, w których obowiązuje cena początkowa.

SubscriptionCancelSurveyResult

Informacje podane przez użytkownika podczas procesu anulowania subskrypcji (ankieta z pytaniem o powód rezygnacji).

Zapis JSON
{
  "cancelSurveyReason": integer,
  "userInputCancelReason": string
}
Pola
cancelSurveyReason

integer

Powód anulowania wybrany przez użytkownika w ankiecie. Możliwe wartości: 0. Inne 1. Nie używam tej usługi zbyt często. Problemy techniczne 3. Chodzi o koszty 4. Udało mi się znaleźć lepszą aplikację

userInputCancelReason

string

Dostosowany powód anulowania podany przez użytkownika. Występuje tylko wtedy, gdy cancelReason ma wartość 0.

SubscriptionPriceChange

Zawiera informacje o zmianie ceny subskrypcji, które można wykorzystać do kontrolowania ścieżki użytkownika w aplikacji w przypadku zmiany ceny. Może to być prośba o potwierdzenie od użytkownika lub dostosowanie działania aplikacji w celu zwiększenia skuteczności konwersji.

Zapis JSON
{
  "newPrice": {
    object (Price)
  },
  "state": integer
}
Pola
newPrice

object (Price)

Nowa cena, po której subskrypcja zostanie odnowiona, jeśli użytkownik zaakceptuje zmianę ceny.

state

integer

Obecny stan zmiany ceny. Możliwe wartości: 0. Oczekująca: stan oczekującej zmiany ceny, która wymaga zgody użytkownika. W tym stanie możesz opcjonalnie poprosić użytkownika o potwierdzenie za pomocą interfejsu API w aplikacji. 1. Zaakceptowano: stan zaakceptowanej zmiany ceny, która spowoduje odnowienie subskrypcji, chyba że zostanie ona anulowana. Zmiana ceny zacznie obowiązywać w przyszłości, gdy subskrypcja zostanie odnowiona. Pamiętaj, że zmiana może nie nastąpić przy kolejnym odnowieniu subskrypcji.

Metody

acknowledge

Potwierdza zakup subskrypcji.

cancel

Anuluje zakup subskrypcji użytkownika.

defer

Odroczenie zakupu subskrypcji użytkownika do określonego czasu wygaśnięcia w przyszłości.

get
(deprecated)

Wycofano: zamiast tego użyj purchases.subscriptionsv2.get.

refund
(deprecated)

Wycofano: zamiast tego używaj orders.refund.

revoke
(deprecated)

Wycofano: zamiast tego użyj purchases.subscriptionsv2.revoke.

Kody błędów

Operacje na tym zasobie zwracają te kody błędów HTTP:

Kod błędu Przyczyna Rozdzielczość
5xx Ogólny błąd serwera Google Play. Ponów żądanie.

Jeśli problem nie ustąpi, skontaktuj się z menedżerem konta Google Play lub prześlij prośbę o pomoc. Sprawdź panel stanu Google Play, aby dowiedzieć się, czy występują znane awarie.

409 Błąd aktualizacji współbieżnej.

Podjęto próbę zaktualizowania obiektu, który jest aktualizowany. Na przykład zakup jest potwierdzany przez jednoczesne wywołanie metody acknowledgePurchase() Biblioteki płatności w Play i metody purchases.products.acknowledge interfejsu Play Developer API.

Ponów żądanie.
410 Nie można już wysłać zapytania o zakup subskrypcji, ponieważ wygasła ona zbyt dawno. Wyjątek zgłaszany podczas wysyłania zapytania dotyczącego subskrypcji, która wygasła ponad 60 dni temu. Nie wysyłaj już zapytań dotyczących tych subskrypcji.