- Zasób: SubscriptionPurchase
- IntroductoryPriceInfo
- SubscriptionCancelSurveyResult
- SubscriptionPriceChange
- Metody
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 ( |
Pola | |
---|---|
kind |
Ten rodzaj reprezentuje obiekt subscriptionPurchase w usłudze androidpublisher. |
startTimeMillis |
Czas przyznania subskrypcji w milisekundach od początku epoki. |
expiryTimeMillis |
Czas wygaśnięcia subskrypcji w milisekundach od początku epoki. |
autoResumeTimeMillis |
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 |
Określa, czy subskrypcja zostanie automatycznie odnowiona po upływie bieżącego okresu ważności. |
priceCurrencyCode |
Kod waluty ceny subskrypcji w formacie ISO 4217. Jeśli na przykład cena jest podana w funtach brytyjskich, priceCurrencyCode to „GBP”. |
priceAmountMicros |
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 |
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 |
Kod kraju lub regionu rozliczeniowego użytkownika w formacie ISO 3166-1 alfa-2 w momencie przyznania subskrypcji. |
developerPayload |
Ciąg znaków określony przez dewelopera, który zawiera dodatkowe informacje o zamówieniu. |
paymentState |
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 |
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 |
Czas anulowania subskrypcji przez użytkownika w milisekundach od początku epoki. Występuje tylko wtedy, gdy cancelReason ma wartość 0. |
cancelSurveyResult |
Informacje podane przez użytkownika podczas procesu anulowania subskrypcji (ankieta z pytaniem o powód rezygnacji). |
orderId |
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 |
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 |
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 |
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 |
Nazwa profilu użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”. |
emailAddress |
Adres e-mail użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”. |
givenName |
Imię użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”. |
familyName |
Nazwisko użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”. |
profileId |
Identyfikator profilu Google użytkownika w momencie zakupu subskrypcji. Występuje tylko w przypadku zakupów dokonanych za pomocą „Subskrybuj w Google”. |
acknowledgementState |
Stan potwierdzenia subskrypcji. Możliwe wartości: 0. Niepotwierdzone 1. Potwierdzono |
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. |
promotionType |
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 |
Kod promocyjny zastosowany przy tym zakupie. To pole jest ustawiane tylko wtedy, gdy podczas zakupu subskrypcji zastosowano promocję z kodem niestandardowym. |
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ł określony za pomocą 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 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 |
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 |
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 |
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 |
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 |
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 |
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 ( |
Pola | |
---|---|
newPrice |
Nowa cena, po której subskrypcja zostanie odnowiona, jeśli użytkownik zaakceptuje zmianę ceny. |
state |
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 |
|
---|---|
|
Potwierdza zakup subskrypcji. |
|
Anuluje zakup subskrypcji użytkownika. |
|
Odroczenie zakupu subskrypcji użytkownika do określonego czasu wygaśnięcia w przyszłości. |
(deprecated) |
Wycofano: zamiast tego użyj purchases.subscriptionsv2.get. |
(deprecated) |
Wycofano: zamiast tego używaj orders.refund. |
(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 |
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. |