- Zasób: SubscriptionPurchaseV2
- SubscriptionState
- PausedStateContext
- CanceledStateContext
- UserInitiatedCancellation
- CancelSurveyResult
- CancelSurveyReason
- SystemInitiatedCancellation
- DeveloperInitiatedCancellation
- ReplacementCancellation
- TestPurchase
- AcknowledgementState
- ExternalAccountIdentifiers
- SubscribeWithGoogleInfo
- SubscriptionPurchaseLineItem
- AutoRenewingPlan
- SubscriptionItemPriceChangeDetails
- PriceChangeMode
- PriceChangeState
- InstallmentPlan
- PendingCancellation
- PriceStepUpConsentDetails
- ConsentState
- PrepaidPlan
- OfferDetails
- DeferredItemReplacement
- DeferredItemRemoval
- SignupPromotion
- OneTimeCode
- VanityCode
- ItemReplacement
- ReplacementMode
- OfferPhase
- ProrationPeriodOfferPhase
- OriginalOfferPhaseType
- FreeTrialOfferPhase
- IntroductoryPriceOfferPhase
- BasePriceOfferPhase
- OutOfAppPurchaseContext
- Metody
Zasób: SubscriptionPurchaseV2
Wskazuje stan zakupu subskrypcji przez użytkownika.
| Zapis JSON |
|---|
{ "kind": string, "regionCode": string, "lineItems": [ { object ( |
| Pola | |
|---|---|
kind |
Ten rodzaj reprezentuje obiekt SubscriptionPurchaseV2 w usłudze androidpublisher. |
regionCode |
Kod kraju lub regionu rozliczeniowego użytkownika w formacie ISO 3166-1 alfa-2 w momencie przyznania subskrypcji. |
lineItems[] |
Informacje o zakupie subskrypcji na poziomie produktu. Wszystkie produkty w ramach tego samego zakupu powinny być objęte abonamentem odnawianym automatycznie lub abonamentem przedpłaconym. |
startTime |
Czas przyznania subskrypcji. Nie jest ustawiony w przypadku subskrypcji oczekujących (subskrypcja została utworzona, ale podczas rejestracji oczekuje na płatność). Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
subscriptionState |
Bieżący stan subskrypcji. |
latestOrderId |
Wycofano: zamiast tego użyj lineItems.latest_successful_order_id. Identyfikator ostatniego zamówienia powiązanego z zakupem subskrypcji. W przypadku subskrypcji z automatycznym odnawianiem jest to identyfikator zamówienia rejestracyjnego, jeśli nie zostało jeszcze odnowione, lub identyfikator ostatniego zamówienia cyklicznego (zrealizowanego, oczekującego lub odrzuconego). W przypadku subskrypcji przedpłaconej jest to identyfikator zamówienia powiązany z tokenem zakupu, którego dotyczy zapytanie. |
linkedPurchaseToken |
Token zakupu starej subskrypcji, jeśli jest ona jedną z tych opcji: * ponowna rejestracja anulowanej, ale niewygasłej subskrypcji; * przejście na wyższą lub niższą wersję poprzedniej subskrypcji. * Przekształć abonament przedpłacony w automatycznie odnawianą subskrypcję. * Przekształcanie subskrypcji odnawianej automatycznie w abonament przedpłacony. * Przedłużanie abonamentu przedpłaconego. |
pausedStateContext |
Dodatkowy kontekst dotyczący wstrzymanych subskrypcji. Występuje tylko wtedy, gdy subskrypcja ma obecnie stan SUBSCRIPTION_STATE_PAUSED. |
canceledStateContext |
Dodatkowy kontekst dotyczący anulowanych subskrypcji. Występuje tylko wtedy, gdy subskrypcja ma obecnie stan SUBSCRIPTION_STATE_CANCELED lub SUBSCRIPTION_STATE_EXPIRED. |
testPurchase |
Występuje tylko wtedy, gdy zakup subskrypcji jest zakupem testowym. |
acknowledgementState |
Stan potwierdzenia subskrypcji. |
externalAccountIdentifiers |
Identyfikator konta użytkownika w usłudze zewnętrznej. |
subscribeWithGoogleInfo |
Profil użytkownika powiązany z zakupami dokonanymi za pomocą funkcji „Subskrybuj w Google”. |
etag |
Tag encji reprezentujący bieżący stan subskrypcji. Deweloper będzie podawać ten tag ETag w przypadku działań związanych z subskrypcją. Ten tag ETag jest zawsze obecny w przypadku subskrypcji odnawianych automatycznie i subskrypcji z przedpłatą. |
outOfAppPurchaseContext |
Dodatkowy kontekst dotyczący zakupów poza aplikacją. Te informacje są dostępne tylko w przypadku ponownego zakupu subskrypcji (zakupu subskrypcji tego samego produktu po wygaśnięciu poprzedniej subskrypcji) dokonanego w centrum subskrypcji Google Play. To pole zostanie usunięte po potwierdzeniu subskrypcji. |
SubscriptionState
Potencjalne stany subskrypcji, np. czy jest aktywna, czy anulowana. Elementy w ramach zakupu subskrypcji mogą być odnawiane automatycznie lub przedpłacone.
| Wartości w polu enum | |
|---|---|
SUBSCRIPTION_STATE_UNSPECIFIED |
Nieokreślony stan subskrypcji. |
SUBSCRIPTION_STATE_PENDING |
Subskrypcja została utworzona, ale podczas rejestracji oczekuje na płatność. W tym stanie wszystkie produkty oczekują na płatność. |
SUBSCRIPTION_STATE_ACTIVE |
Subskrypcja jest aktywna. – (1) Jeśli subskrypcja jest odnawiana automatycznie, co najmniej 1 produkt ma wartość autoRenewEnabled i nie wygasł. – (2) Jeśli subskrypcja jest abonamentem przedpłaconym, co najmniej 1 produkt nie wygasł. |
SUBSCRIPTION_STATE_PAUSED |
Subskrypcja jest wstrzymana. Ten stan jest dostępny tylko wtedy, gdy subskrypcja jest automatycznie odnawianym abonamentem. W tym stanie wszystkie elementy są wstrzymane. |
SUBSCRIPTION_STATE_IN_GRACE_PERIOD |
Subskrypcja jest w okresie prolongaty. Ten stan jest dostępny tylko wtedy, gdy subskrypcja jest automatycznie odnawianym abonamentem. W tym stanie wszystkie produkty są w okresie prolongaty. |
SUBSCRIPTION_STATE_ON_HOLD |
Subskrypcja jest wstrzymana (zawieszona). Ten stan jest dostępny tylko wtedy, gdy subskrypcja jest automatycznie odnawianym abonamentem. W tym stanie wszystkie produkty są wstrzymane. |
SUBSCRIPTION_STATE_CANCELED |
Subskrypcja została anulowana, ale jeszcze nie wygasła. Ten stan jest dostępny tylko wtedy, gdy subskrypcja jest automatycznie odnawianym abonamentem. Wszystkie elementy mają wartość autoRenewEnabled ustawioną na false. |
SUBSCRIPTION_STATE_EXPIRED |
Subskrypcja wygasła. Wszystkie produkty mają wartość expiryTime w przeszłości. |
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED |
Oczekująca transakcja dotycząca subskrypcji została anulowana. Jeśli ta oczekująca płatność dotyczy istniejącej subskrypcji, użyj parametru linkedPurchaseToken, aby uzyskać jej bieżący stan. |
PausedStateContext
Informacje dotyczące subskrypcji w stanie wstrzymania.
| Zapis JSON |
|---|
{ "autoResumeTime": string } |
| Pola | |
|---|---|
autoResumeTime |
Czas, w którym subskrypcja zostanie automatycznie wznowiona. Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
CanceledStateContext
Informacje dotyczące subskrypcji w stanie SUBSCRIPTION_STATE_CANCELED lub SUBSCRIPTION_STATE_EXPIRED.
| Zapis JSON |
|---|
{ // Union field |
| Pola | |
|---|---|
Pole zbiorcze cancellation_reason. Powód anulowania subskrypcji. cancellation_reason może mieć tylko jedną z tych wartości: |
|
userInitiatedCancellation |
Subskrypcja została anulowana przez użytkownika. |
systemInitiatedCancellation |
Subskrypcja została anulowana przez system, np. z powodu problemu z płatnością. |
developerInitiatedCancellation |
Subskrypcja została anulowana przez dewelopera. |
replacementCancellation |
Subskrypcja została zastąpiona nową subskrypcją. |
UserInitiatedCancellation
Informacje dotyczące anulowania subskrypcji przez użytkowników.
| Zapis JSON |
|---|
{
"cancelSurveyResult": {
object ( |
| Pola | |
|---|---|
cancelSurveyResult |
Informacje podane przez użytkownika podczas procesu anulowania subskrypcji (ankieta z pytaniem o powód rezygnacji). |
cancelTime |
Czas, w którym subskrypcja została anulowana przez użytkownika. Po tym czasie użytkownik może nadal mieć dostęp do subskrypcji. Użyj lineItems.expiry_time, aby sprawdzić, czy użytkownik nadal ma dostęp. Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
CancelSurveyResult
Wynik ankiety anulowania, gdy subskrypcja została anulowana przez użytkownika.
| Zapis JSON |
|---|
{
"reason": enum ( |
| Pola | |
|---|---|
reason |
Powód wybrany przez użytkownika w ankiecie dotyczącej anulowania. |
reasonUserInput |
Stosowane tylko w przypadku wartości CANCEL_SURVEY_REASON_OTHERS. Jest to własna odpowiedź użytkownika na pytanie w ankiecie. |
CancelSurveyReason
Powód wybrany przez użytkownika w ankiecie dotyczącej anulowania.
| Wartości w polu enum | |
|---|---|
CANCEL_SURVEY_REASON_UNSPECIFIED |
Nieokreślony powód anulowania ankiety. |
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE |
Za małe wykorzystanie subskrypcji. |
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES |
problemy techniczne podczas korzystania z aplikacji; |
CANCEL_SURVEY_REASON_COST_RELATED |
Problemy związane z kosztami. |
CANCEL_SURVEY_REASON_FOUND_BETTER_APP |
Użytkownik znalazł lepszą aplikację. |
CANCEL_SURVEY_REASON_OTHERS |
Inne powody. |
SystemInitiatedCancellation
Ten typ nie ma pól.
Informacje dotyczące anulowania zainicjowanego przez system Google.
DeveloperInitiatedCancellation
Ten typ nie ma pól.
Informacje dotyczące anulowania zainicjowanego przez deweloperów.
ReplacementCancellation
Ten typ nie ma pól.
Informacje dotyczące anulowań spowodowanych zastąpieniem subskrypcji.
TestPurchase
Ten typ nie ma pól.
Określa, czy zakup subskrypcji jest zakupem testowym.
AcknowledgementState
Możliwe stany potwierdzenia subskrypcji.
| Wartości w polu enum | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
Nieokreślony stan potwierdzenia. |
ACKNOWLEDGEMENT_STATE_PENDING |
Subskrypcja nie została jeszcze potwierdzona. |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
Subskrypcja została potwierdzona. |
ExternalAccountIdentifiers
Identyfikator konta użytkownika w usłudze zewnętrznej.
| Zapis JSON |
|---|
{ "externalAccountId": string, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string } |
| Pola | |
|---|---|
externalAccountId |
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. |
obfuscatedExternalAccountId |
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ł on określony za pomocą funkcji https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid podczas dokonywania zakupu. |
obfuscatedExternalProfileId |
Zaciemniona wersja identyfikatora, który jest jednoznacznie powiązany z profilem użytkownika w Twojej aplikacji. Występuje tylko wtedy, gdy został określony za pomocą parametru https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid podczas dokonywania zakupu. |
SubscribeWithGoogleInfo
Informacje związane z zakupami dokonanymi w ramach subskrypcji w Google.
| Zapis JSON |
|---|
{ "profileId": string, "profileName": string, "emailAddress": string, "givenName": string, "familyName": string } |
| Pola | |
|---|---|
profileId |
Identyfikator profilu Google użytkownika w momencie zakupu subskrypcji. |
profileName |
Nazwa profilu użytkownika w momencie zakupu subskrypcji. |
emailAddress |
Adres e-mail użytkownika w momencie zakupu subskrypcji. |
givenName |
Imię użytkownika w momencie zakupu subskrypcji. |
familyName |
Nazwisko użytkownika w momencie zakupu subskrypcji. |
SubscriptionPurchaseLineItem
Informacje o zakupie subskrypcji na poziomie produktu.
| Zapis JSON |
|---|
{ "productId": string, "expiryTime": string, "latestSuccessfulOrderId": string, // Union field |
| Pola | |
|---|---|
productId |
Identyfikator zakupionego produktu (np. „monthly001”). |
expiryTime |
Czas, w którym subskrypcja wygasła lub wygaśnie, chyba że dostęp zostanie przedłużony (np. odnowiony). Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
latestSuccessfulOrderId |
Identyfikator ostatniego zamówienia powiązanego z tym produktem, które zostało zrealizowane. Nie występuje, jeśli użytkownik nie ma jeszcze tego elementu (np. elementu, który został zastąpiony przez element odroczony). |
Pole zbiorcze plan_type. Typ abonamentu. plan_type może mieć tylko jedną z tych wartości: |
|
autoRenewingPlan |
Produkt jest odnawiany automatycznie. |
prepaidPlan |
Produkt jest opłacony z góry. |
offerDetails |
Szczegóły oferty dotyczące tego produktu. |
Pole zbiorcze deferred_item_change. To pole jest widoczne, gdy element ma odroczoną zmianę. Możesz ją usunąć lub zastąpić. deferred_item_change może mieć tylko jedną z tych wartości: |
|
deferredItemReplacement |
Informacje o odroczonej wymianie produktu. |
deferredItemRemoval |
Informacje o odroczonym usuwaniu elementów. |
signupPromotion |
Szczegóły promocji dotyczące tego produktu. Ustawiany tylko wtedy, gdy podczas rejestracji zastosowano promocję. |
itemReplacement |
Szczegóły wymienianego produktu. To pole jest wypełniane tylko wtedy, gdy ten produkt zastąpił inny produkt w poprzedniej subskrypcji, i jest dostępne tylko przez 60 dni od zakupu. |
offerPhase |
Szczegóły bieżącego etapu oferty dla tego produktu. |
AutoRenewingPlan
Informacje dotyczące abonamentu odnawianego automatycznie.
| Zapis JSON |
|---|
{ "autoRenewEnabled": boolean, "recurringPrice": { object ( |
| Pola | |
|---|---|
autoRenewEnabled |
Jeśli subskrypcja jest obecnie ustawiona na automatyczne odnawianie, np.użytkownik nie anulował subskrypcji. |
recurringPrice |
Obecna cena cykliczna abonamentu odnawianego automatycznie. Pamiętaj, że cena nie uwzględnia rabatów i nie zawiera podatków w przypadku cen bez podatku. Jeśli potrzebujesz szczegółów transakcji, zadzwoń pod numer |
priceChangeDetails |
Informacje o ostatniej zmianie ceny produktu od momentu zarejestrowania subskrypcji. |
installmentDetails |
Zobowiązanie dotyczące planu ratalnego i informacje o stanie związane z automatycznie odnawianym abonamentem. |
priceStepUpConsentDetails |
Informacje o najnowszej zgodzie na podwyższenie ceny. |
SubscriptionItemPriceChangeDetails
Informacje o zmianie ceny elementu subskrypcji.
| Zapis JSON |
|---|
{ "newPrice": { object ( |
| Pola | |
|---|---|
newPrice |
Nowa cena cykliczna za subskrypcję. |
priceChangeMode |
Tryb zmiany ceny określa, jak zmienia się cena elementu subskrypcji. |
priceChangeState |
Określ, w jakim stanie jest obecnie zmiana ceny. |
expectedNewPriceChargeTime |
Czas odnowienia, w którym zmiana ceny zacznie obowiązywać użytkownika. Może się to zmienić(w przyszłości) w przypadku przesunięcia czasu odnowienia, np. w wyniku wstrzymania subskrypcji. To pole jest wypełniane tylko wtedy, gdy zmiana ceny nie weszła jeszcze w życie. Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
PriceChangeMode
Rodzaj zmiany ceny.
| Wartości w polu enum | |
|---|---|
PRICE_CHANGE_MODE_UNSPECIFIED |
Nieokreślony tryb zmiany ceny. Ta wartość nigdy nie powinna być ustawiona. |
PRICE_DECREASE |
jeśli cena subskrypcji się zmniejsza; |
PRICE_INCREASE |
Jeśli cena subskrypcji wzrasta i użytkownik musi ją zaakceptować. |
OPT_OUT_PRICE_INCREASE |
Jeśli cena subskrypcji wzrasta w trybie rezygnacji. |
PriceChangeState
Stan zmiany ceny.
| Wartości w polu enum | |
|---|---|
PRICE_CHANGE_STATE_UNSPECIFIED |
Stan zmiany ceny jest nieokreślony. Nie należy używać tej wartości. |
OUTSTANDING |
Oczekiwanie na zgodę użytkownika na zmianę ceny. |
CONFIRMED |
Potwierdzono, że zmiana ceny nastąpi w przypadku użytkownika. |
APPLIED |
Zmiana ceny została zastosowana, tzn. użytkownik zaczął płacić nową cenę. |
CANCELED |
Zmiana ceny została anulowana. |
InstallmentPlan
Informacje o planie ratalnym.
| Zapis JSON |
|---|
{
"initialCommittedPaymentsCount": integer,
"subsequentCommittedPaymentsCount": integer,
"remainingCommittedPaymentsCount": integer,
"pendingCancellation": {
object ( |
| Pola | |
|---|---|
initialCommittedPaymentsCount |
Łączna liczba płatności, do których użytkownik zobowiązał się na początku. |
subsequentCommittedPaymentsCount |
Łączna liczba płatności, do których użytkownik będzie zobowiązany po każdym okresie zobowiązania. Puste pole oznacza, że po początkowym okresie zobowiązania abonament ratalny zostanie przekształcony w zwykłą subskrypcję z automatycznym odnawianiem. |
remainingCommittedPaymentsCount |
Łączna liczba płatności w ramach zobowiązania, które pozostały do zapłacenia w tym cyklu odnowienia. |
pendingCancellation |
Jeśli ten abonament jest obecny, oczekuje na anulowanie. Anulowanie nastąpi dopiero po dokonaniu przez użytkownika wszystkich zobowiązanych płatności. |
PendingCancellation
Ten typ nie ma pól.
Wskazuje, czy w przypadku wirtualnego planu ratalnego oczekuje się anulowania. Anulowanie nastąpi dopiero po dokonaniu przez użytkownika wszystkich zobowiązanych płatności.
PriceStepUpConsentDetails
Informacje związane ze wzrostem ceny, który wymaga zgody użytkownika.
| Zapis JSON |
|---|
{ "state": enum ( |
| Pola | |
|---|---|
state |
Tylko dane wyjściowe. Stan zgody na podwyższenie ceny. |
consentDeadlineTime |
Termin, do którego użytkownik musi wyrazić zgodę. Jeśli do tego czasu nie wyrazisz zgody, subskrypcja zostanie anulowana. Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
newPrice |
nowa cena, która wymaga zgody użytkownika; |
ConsentState
Stan zgody na podwyższenie ceny.
| Wartości w polu enum | |
|---|---|
CONSENT_STATE_UNSPECIFIED |
Nieokreślony stan zgody użytkownika. |
PENDING |
użytkownik nie wyraził jeszcze zgody. |
CONFIRMED |
Użytkownik wyraził zgodę, a nowa cena czeka na wejście w życie. |
COMPLETED |
Użytkownik wyraził zgodę, a nowa cena zaczęła obowiązywać. |
PrepaidPlan
Informacje dotyczące abonamentu przedpłaconego.
| Zapis JSON |
|---|
{ "allowExtendAfterTime": string } |
| Pola | |
|---|---|
allowExtendAfterTime |
Jeśli jest obecny, jest to czas, po którym można doładować abonament przedpłacony. Nie będzie widoczny w przypadku wygasłych abonamentów przedpłaconych. Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
OfferDetails
Informacje o szczegółach oferty dotyczące elementu zamówienia.
| Zapis JSON |
|---|
{ "offerTags": [ string ], "basePlanId": string, "offerId": string } |
| Pola | |
|---|---|
offerTags[] |
Najnowsze tagi oferty powiązane z ofertą. Zawiera tagi odziedziczone z abonamentu podstawowego. |
basePlanId |
Identyfikator abonamentu podstawowego. Występuje we wszystkich abonamentach podstawowych i ofertach. |
offerId |
Identyfikator oferty. Występuje tylko w przypadku ofert z rabatem. |
DeferredItemReplacement
Informacje dotyczące odroczonej wymiany produktu.
| Zapis JSON |
|---|
{ "productId": string } |
| Pola | |
|---|---|
productId |
Identyfikator produktu, który zastąpi dotychczasowy identyfikator produktu. |
DeferredItemRemoval
Ten typ nie ma pól.
Informacje dotyczące odroczonej wymiany produktu.
SignupPromotion
Promocja zastosowana do tego produktu w momencie zakupu.
| Zapis JSON |
|---|
{ // Union field |
| Pola | |
|---|---|
Pole zbiorcze promotion_type. Typ promocji zastosowanej do produktu. promotion_type może mieć tylko jedną z tych wartości: |
|
oneTimeCode |
Zastosowano kod jednorazowy. |
vanityCode |
Zastosowano kod niestandardowy. |
OneTimeCode
Ten typ nie ma pól.
jednorazowy kod promocyjny.
VanityCode
wielokrotnego użytku, zdefiniowany kod promocyjny;
| Zapis JSON |
|---|
{ "promotionCode": string } |
| Pola | |
|---|---|
promotionCode |
Kod promocyjny. |
ItemReplacement
Szczegóły elementu zamówienia subskrypcji, który jest zastępowany.
| Zapis JSON |
|---|
{
"productId": string,
"replacementMode": enum ( |
| Pola | |
|---|---|
productId |
Identyfikator produktu objętego subskrypcją, który jest zastępowany. |
replacementMode |
Tryb wymiany zastosowany podczas zakupu. |
basePlanId |
Identyfikator abonamentu podstawowego zastępowanego elementu zamówienia subskrypcji. |
offerId |
Identyfikator oferty zastępowanego elementu zamówienia subskrypcji (w stosownych przypadkach). |
ReplacementMode
Tryb zastępowania subskrypcji.
| Wartości w polu enum | |
|---|---|
REPLACEMENT_MODE_UNSPECIFIED |
Nieokreślony tryb zastępowania. |
WITH_TIME_PRORATION |
Nowy abonament zostanie przeliczony proporcjonalnie, a środki zostaną przeniesione ze starego abonamentu. |
CHARGE_PRORATED_PRICE |
Użytkownik zostanie obciążony proporcjonalną ceną za nowy pakiet. |
WITHOUT_PRORATION |
Nowy abonament zastąpi stary bez proporcjonalnego rozliczania czasu. |
CHARGE_FULL_PRICE |
Od użytkownika zostanie pobrana pełna cena nowego abonamentu. |
DEFERRED |
Stary abonament zostanie anulowany, a nowy zacznie obowiązywać po wygaśnięciu starego. |
KEEP_EXISTING |
Po wymianie abonament pozostanie bez zmian. |
OfferPhase
Szczegóły etapu oferty.
| Zapis JSON |
|---|
{ // Union field |
| Pola | |
|---|---|
Pole zbiorcze offer_phase. Szczegóły etapu oferty. offer_phase może mieć tylko jedną z tych wartości: |
|
prorationPeriod |
Określ, kiedy faza oferty jest okresem proporcjonalnym. |
freeTrial |
Określ, kiedy faza oferty jest bezpłatnym okresem próbnym. |
introductoryPrice |
Określ, kiedy etap oferty jest etapem oferty ceny początkowej. |
basePrice |
Określ, kiedy etap oferty jest etapem cenowym abonamentu podstawowego. |
ProrationPeriodOfferPhase
Szczegóły dotyczące fazy oferty okresu proporcjonalnego.
| Zapis JSON |
|---|
{
"originalOfferPhaseType": enum ( |
| Pola | |
|---|---|
originalOfferPhaseType |
Typ pierwotnej fazy oferty przed okresem proporcjonalnym. Ustawiane tylko wtedy, gdy okres proporcjonalny jest aktualizowany z istniejącej fazy oferty. |
OriginalOfferPhaseType
Oryginalna faza oferty płatności za ofertę, jeśli płatność za ofertę jest płatnością proporcjonalną.
| Wartości w polu enum | |
|---|---|
ORIGINAL_OFFER_PHASE_TYPE_UNSPECIFIED |
Nieokreślony typ fazy pierwotnej oferty. |
BASE |
Subskrypcja jest w fazie ceny podstawowej (np. pełnej ceny). |
INTRODUCTORY |
Subskrypcja jest w fazie ceny początkowej. |
FREE_TRIAL |
Subskrypcja jest w bezpłatnym okresie próbnym. |
FreeTrialOfferPhase
Ten typ nie ma pól.
Szczegóły fazy oferty bezpłatnego okresu próbnego.
IntroductoryPriceOfferPhase
Ten typ nie ma pól.
Szczegóły dotyczące etapu oferty ceny dla nowych użytkowników.
BasePriceOfferPhase
Ten typ nie ma pól.
Szczegóły dotyczące fazy oferty ceny podstawowej.
OutOfAppPurchaseContext
Informacje dotyczące zakupu poza aplikacją.
| Zapis JSON |
|---|
{
"expiredExternalAccountIdentifiers": {
object ( |
| Pola | |
|---|---|
expiredExternalAccountIdentifiers |
Identyfikator konta użytkownika z ostatniej wygasłej subskrypcji tego kodu SKU. |
expiredPurchaseToken |
Token zakupu ostatniej wygasłej subskrypcji. Ten token zakupu może być używany tylko do identyfikowania użytkownika, jeśli w Twojej bazie danych jest przechowywane połączenie między tokenem zakupu a użytkownikiem. Nie można go użyć do wywołania interfejsu Google Developer API, jeśli od wygaśnięcia minęło więcej niż 60 dni. |
Metody |
|
|---|---|
|
Anulowanie zakupu subskrypcji przez użytkownika. |
|
Odroczenie odnowienia subskrypcji. |
|
Pobieranie metadanych subskrypcji |
|
Unieważnij zakup subskrypcji użytkownika. |
Kody błędów
Operacje na tym zasobie zwracają te kody błędów HTTP:
| Kod błędu | Przyczyna | Opis | Rozdzielczość |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
Subskrypcja wygasła i nie można wykonać żądanej operacji. | Sprawdź czas wygaśnięcia subskrypcji. Tej operacji nie można wykonać w przypadku wygasłych subskrypcji. |
400 |
subscriptionInvalidArgument |
W żądaniu subskrypcji podano nieprawidłowy argument. | Zapoznaj się z dokumentacją interfejsu API i sprawdź, czy wszystkie wymagane pola są wypełnione i prawidłowo sformatowane. |
400 |
invalidPurchaseState |
Zakup nie jest w prawidłowym stanie, aby wykonać żądaną operację. Możesz na przykład próbować potwierdzić zakup, który został już wykorzystany, lub anulować subskrypcję, która nie jest aktywna. | Przed podjęciem próby wykonania operacji sprawdź bieżący stan zasobu za pomocą odpowiedniego interfejsu Get API. Upewnij się, że zasób jest w odpowiednim stanie do wykonania działania. |
400 |
invalidValue |
W żądaniu podano nieprawidłową wartość. Często jest zwracany w przypadku nieprawidłowego lub nieważnego tokena zakupu. | Popraw nieprawidłową wartość pola w treści żądania lub parametrach na podstawie dokumentacji API. |
400 |
prepaidSubscriptionNotSupported |
Żądana operacja nie jest obsługiwana w przypadku subskrypcji przedpłaconych. | Sprawdź, czy operacja dotyczy danego typu subskrypcji. Ten błąd dotyczy konkretnych metod, takich jak Cancel, Defer, Refund czy Revoke. |
400 |
productNotOwnedByUser |
Podany token zakupu jest prawidłowy, ale użytkownik nie jest obecnie właścicielem produktu. Może się tak zdarzyć, jeśli zakup został zwrócony, anulowany lub wygasł przed potwierdzeniem. | Przed podjęciem próby wykonania operacji sprawdź bieżący stan zasobu za pomocą odpowiedniego interfejsu Get API. Upewnij się, że zasób jest w odpowiednim stanie do wykonania działania. |
400 |
purchaseTokenMismatch |
Podany token zakupu nie pasuje do zakupu, nazwy pakietu, identyfikatora subskrypcji ani identyfikatora produktu. | Sprawdź, czy wszystkie szczegóły w prośbie są prawidłowe i zgodne ze sobą. |
400 |
required |
W żądaniu brakuje wymaganego pola lub parametru. | Zapoznaj się z dokumentacją interfejsu API, aby upewnić się, że uwzględniono wszystkie obowiązkowe pola i parametry. |
400 |
unsupportedIabType |
Ta operacja nie jest obsługiwana w przypadku danego typu płatności w aplikacji. | Sprawdź, czy metoda interfejsu API jest zgodna z typem zarządzanego elementu. |
403 |
userInsufficientPermission |
Użytkownik nie ma uprawnień do wykonania żądanej operacji. | Sprawdź, czy uwierzytelniony użytkownik ma niezbędne uprawnienia w Konsoli Google Play. Więcej informacji znajdziesz w artykule Korzystanie z konta usługi. |
404 |
notFound |
Nie znaleziono żądanego zasobu. | Sprawdź, czy identyfikatory (np. token zakupu, nazwa pakietu, identyfikator produktu, identyfikator subskrypcji) są prawidłowe. |
409 |
concurrentUpdate |
Podjęto próbę zaktualizowania obiektu, który jest aktualizowany równocześnie. | Ponów próbę wysłania żądania ze wzrastającym czasem do ponowienia. Unikaj jednoczesnego modyfikowania tego samego zasobu. |
410 |
purchaseTokenNoLongerValid |
Token zakupu jest trwale nieprawidłowy, ponieważ powiązane z nim konto użytkownika zostało usunięte lub rekord zakupu już nie istnieje. | Zaprzestań używania tego tokena zakupu. |
410 |
subscriptionNoLongerAvailable |
Nie można już wysłać zapytania dotyczącego zakupu subskrypcji, ponieważ wygasła ona zbyt dawno. | Ten błąd oznacza, że subskrypcja wygasła ponad 60 dni temu. Nie wysyłaj już zapytań dotyczących tych subskrypcji. |
5xx |
Generic error |
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. |