REST Resource: purchases.productsv2

Zasób: ProductPurchaseV2

Zasób ProductPurchaseV2 wskazuje stan zakupu produktu w aplikacji przez użytkownika.

Zapis JSON
{
  "productLineItem": [
    {
      object (ProductLineItem)
    }
  ],
  "kind": string,
  "purchaseStateContext": {
    object (PurchaseStateContext)
  },
  "testPurchaseContext": {
    object (TestPurchaseContext)
  },
  "orderId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string,
  "regionCode": string,
  "purchaseCompletionTime": string,
  "acknowledgementState": enum (AcknowledgementState)
}
Pola
productLineItem[]

object (ProductLineItem)

Zawiera informacje na poziomie produktu dla obiektu ProductPurchaseV2.

kind

string

Ten rodzaj reprezentuje obiekt ProductPurchaseV2 w usłudze androidpublisher.

purchaseStateContext

object (PurchaseStateContext)

Informacje o stanie zakupu.

testPurchaseContext

object (TestPurchaseContext)

Informacje dotyczące zakupów testowych. Będzie ona ustawiana tylko w przypadku zakupów testowych.

orderId

string

Identyfikator zamówienia powiązany z zakupem produktu w aplikacji. Nie można ustawić, jeśli z zakupem nie jest powiązane żadne zamówienie.

obfuscatedExternalAccountId

string

Zaciemniona wersja identyfikatora, który jest jednoznacznie powiązany z kontem użytkownika w Twojej aplikacji. Występuje tylko wtedy, gdy 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.

regionCode

string

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

purchaseCompletionTime

string (Timestamp format)

Czas, w którym zakup został sfinalizowany, czyli gdy stan zakupu zmienił się na PURCHASED. To pole nie będzie widoczne, dopóki płatność nie zostanie zrealizowana. Jeśli na przykład użytkownik zainicjował oczekującą transakcję (https://developer.android.com/google/play/billing/integrate#pending), to pole nie zostanie wypełnione, dopóki użytkownik nie wykona kroków wymaganych do sfinalizowania transakcji.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

acknowledgementState

enum (AcknowledgementState)

Tylko dane wyjściowe. Stan potwierdzenia zakupu.

PurchaseStateContext

Kontekst dotyczący stanu zakupu.

Zapis JSON
{
  "purchaseState": enum (PurchaseState)
}
Pola
purchaseState

enum (PurchaseState)

Tylko dane wyjściowe. Stan zakupu.

PurchaseState

Możliwe stany zakupu.

Wartości w polu enum
PURCHASE_STATE_UNSPECIFIED Stan zakupu jest nieokreślony. Ta wartość nigdy nie powinna być ustawiona.
PURCHASED Zakup został sfinalizowany.
CANCELLED Zamówienie anulowane.
PENDING Zakup jest w stanie oczekiwania i nie został jeszcze sfinalizowany. Więcej informacji o obsłudze oczekujących zakupów znajdziesz na stronie https://developer.android.com/google/play/billing/integrate#pending.

TestPurchaseContext

Kontekst zakupu testowego.

Zapis JSON
{
  "fopType": enum (FopType)
}
Pola
fopType

enum (FopType)

Typ formy płatności w przypadku zakupu testowego.

FopType

Możliwe typy FOP.

Wartości w polu enum
FOP_TYPE_UNSPECIFIED Nieokreślony typ FOP. Ta wartość nigdy nie powinna być ustawiona.
TEST Zakup został dokonany za pomocą karty testowej.

ProductLineItem

Zawiera informacje na poziomie produktu dla obiektu ProductPurchaseV2.

Zapis JSON
{
  "productId": string,
  "productOfferDetails": {
    object (ProductOfferDetails)
  }
}
Pola
productId

string

Identyfikator zakupionego produktu (np. „monthly001”).

productOfferDetails

object (ProductOfferDetails)

Szczegóły oferty dotyczące tego produktu.

ProductOfferDetails

Informacje o szczegółach oferty dotyczące elementu zamówienia.

Zapis JSON
{
  "offerTags": [
    string
  ],
  "offerId": string,
  "purchaseOptionId": string,
  "rentOfferDetails": {
    object (RentOfferDetails)
  },
  "offerToken": string,
  "quantity": integer,
  "refundableQuantity": integer,
  "consumptionState": enum (ConsumptionState)
}
Pola
offerTags[]

string

Najnowsze tagi oferty powiązane z ofertą. Zawiera tagi odziedziczone z opcji zakupu.

offerId

string

Identyfikator oferty. Występuje tylko w przypadku ofert.

purchaseOptionId

string

Identyfikator opcji zakupu.

rentOfferDetails

object (RentOfferDetails)

Szczegóły oferty dotyczące ofert wynajmu. Będzie to ustawiane tylko w przypadku elementów zamówienia dotyczących wypożyczeń.

offerToken

string

Token oferty za transakcję użyty do zakupu tego elementu zamówienia.

quantity

integer

Liczba powiązana z zakupem produktu w aplikacji.

refundableQuantity

integer

Liczba produktów kwalifikujących się do zwrotu, czyli liczba produktów, za które nie zwrócono jeszcze środków. Wartość ta uwzględnia częściowe zwroty środków za zamówienia z większą liczbą produktów i pełne zwroty środków.

consumptionState

enum (ConsumptionState)

Tylko dane wyjściowe. Stan wykorzystania zakupu.

RentOfferDetails

Ten typ nie ma pól.

Informacje o szczegółach oferty związane z elementem zamówienia dotyczącym wynajmu.

ConsumptionState

Możliwe stany wykorzystania.

Wartości w polu enum
CONSUMPTION_STATE_UNSPECIFIED Stan wykorzystania jest nieokreślony. Ta wartość nigdy nie powinna być ustawiona.
CONSUMPTION_STATE_YET_TO_BE_CONSUMED Nie zostały jeszcze wykorzystane.
CONSUMPTION_STATE_CONSUMED Został już wykorzystany.

AcknowledgementState

Stan potwierdzenia produktu kupowanego raz.

Wartości w polu enum
ACKNOWLEDGEMENT_STATE_UNSPECIFIED Nieokreślony stan potwierdzenia.
ACKNOWLEDGEMENT_STATE_PENDING Zakup nie został jeszcze potwierdzony.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Zakup został zatwierdzony.

Metody

getproductpurchasev2

Sprawdza stan zakupu i wykorzystania produktu w aplikacji.

Kody błędów

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

Kod błędu Przyczyna Opis Rozdzielczość
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 nieprawidłowo sformatowanego tokena zakupu. Popraw nieprawidłową wartość pola w treści żądania lub w parametrach na podstawie dokumentacji API.
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 wystarczających 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ównolegle. Ponów próbę wysłania żądania ze wzrastającym czasem do ponowienia. Unikaj jednoczesnego modyfikowania tego samego zasobu.
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.