Method: getOrderDetails

Zamów zamówienie, które będzie stanowić podstawę dla partnerów Google do pobierania opłat od użytkowników.

Jeśli podczas przetwarzania żądania punkt końcowy napotka błąd, odpowiedź z tego punktu końcowego będzie typu ErrorResponse.

Jeśli ta metoda nie zwraca kodu HTTP 200, odpowiedzi na to zapytanie mogą być puste. Treść odpowiedzi jest pusta w sytuacjach, gdy można wykorzystać pole ErrorResponse z jasnym opisem, aby ułatwić osobie przeprowadzającej atak rozpoznanie identyfikatora konta integratora płatności innych integratorów. W takich sytuacjach, gdy klucz podpisywania nie pasuje, nie znaleziono identyfikatora integratora płatności lub klucz szyfrowania jest nieznany, ta metoda zwróci błąd HTTP 404 z pustą treścią. Jeśli podpis żądania można zweryfikować, dodatkowe informacje dotyczące błędu zostaną zwrócone w treści odpowiedzi.

Przykładowe żądanie wygląda tak:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "IntegratorFakeAccount",
  "orderLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City"
  }
}

Przykładowa odpowiedź wygląda tak:


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "order": {
    "timestamp": "1517992525972",
    "orderId": "UPG.DEFC.X6F4.MEOM.CDWF",
    "currencyCode": "USD",
    "subTotalAmount": "399000000",
    "totalAmount": "459000000",
    "taxes": [],
    "items": [
      {
        "description": "YouTube TV membership",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "399000000"
      },
      {
        "description": "Showtime",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "6000000"
      }
    ]
  }
}

Żądanie HTTP

POST https://vgw.googleapis.com/secure-serving/gsp/v1/getOrderDetails/:PIAID

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Pola
requestHeader

object (RequestHeader)

WYMAGANE: wspólny nagłówek dla wszystkich żądań.

paymentIntegratorAccountId

string

WYMAGANE: identyfikator konta integratora płatności identyfikujący osobę wywołującą oraz powiązane z nią ograniczenia umowne dotyczące tej interakcji.

orderLookupCriteria

object (OrderLookupCriteria)

WYMAGANE: kryteria wskazujące zamówienie, które ma zostać wyszukane.

requestOriginator

object (RequestOriginator)

OPCJONALNIE: informacje o organizacji lub podgrupie organizacyjnej, która jest źródłem tego zgłoszenia (jeśli integrator dzwoni do nas w imieniu innej organizacji).

Treść odpowiedzi

Ładunek odpowiedzi na metodę getOrderDetails.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Pola
responseHeader

object (ResponseHeader)

WYMAGANE: wspólny nagłówek wszystkich odpowiedzi.

result

enum (GetOrderDetailsResultCode)

WYMAGANE: wynik tego wywołania.

order

object (Order)

OPCJONALNIE: informacje o zamówieniu, za pomocą którego dokonano płatności. Występuje tylko wtedy, gdy result ma wartość EDU.

RequestHeader

Obiekt nagłówka zdefiniowany we wszystkich żądaniach wysyłanych do serwera.

Zapis JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Pola
requestId

string

WYMAGANE: unikalny identyfikator tego żądania.

Jest to ciąg o maksymalnej długości 100 znaków, który zawiera tylko znaki „a–z”, „A–Z”, „0–9”, „:”, „-” i „_”.

requestTimestamp

string (int64 format)

WYMAGANE: sygnatura czasowa tego żądania wyrażona w milisekundach od początku epoki. Odbiorca powinien sprawdzić, czy ta sygnatura czasowa to ±60 sekund „teraz”. Ta sygnatura czasowa żądania nie jest idempotentna przy ponownych próbach.

userLocale
(deprecated)

string

WYCOFANY: dwu- lub 3-literowy kod języka ISO 639-2 alfa 3, po którym może występować łącznik, a następnie kod kraju ISO 3166-1 alfa-2, np. „pt”, „pt-BR”, „fil” lub „fil-PH”. Ułatwia to wykorzystanie pól userMessage w odpowiedzi.

protocolVersion

object (Version)

WYMAGANE: wersja tego żądania.

Wersja

Obiekt wersji, który jest uporządkowaną formą klasycznej struktury wersji a.b.c. Główne wersje tego samego numeru muszą być zgodne. Pamiętaj, że drobne zmiany i zmiany mogą się zmieniać często i bez uprzedzenia. Integrator musi obsługiwać wszystkie żądania dotyczące tej samej wersji głównej.

Zapis JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Pola
major

integer

WYMAGANE: wersja główna. Jeśli żądania zgodności różnią się w zależności od wersji, nie ma gwarancji, że będą one zgodne.

minor

integer

WYMAGANE: wersja podrzędna. Oznacza to istotne poprawki błędów.

revision

integer

WYMAGANE: wersja podrzędna. Oznacza to poprawki drobnych błędów.

OrderLookupCriteria

Kryteria wyszukiwania zamówienia.

Zapis JSON
{

  // Union field criteria can be only one of the following:
  "dcb3CorrelationId": string,
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  }
  // End of list of possible types for union field criteria.
}
Pola

Pole sumy criteria.

criteria może mieć tylko jedną z tych wartości:

dcb3CorrelationId

string

Wyszukiwanie na podstawie wygenerowanego przez Google identyfikatora korelacji płatności bezpośrednio u operatora, który jednoznacznie identyfikuje płatność. Ta wartość została wygenerowana przez Google i przesłana do integratora płatności przez operatora podczas wywołania Auth.

arnCriteria

object (ArnCriteria)

Wyszukiwanie na podstawie numeru referencyjnego centrum autoryzacyjno-rozliczeniowego (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Wyszukiwanie na podstawie numeru referencyjnego transakcji Google.

ArnCriteria

Kryteria wyszukiwania płatności oparte na numerze referencyjnym (ARN) centrum autoryzacyjno-rozliczeniowego.

Zapis JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Pola
acquirerReferenceNumber

string

WYMAGANE: numer referencyjny centrum autoryzacyjno-rozliczeniowego (ARN), który jednoznacznie identyfikuje płatność. Musi mieć 23 cyfry.

authorizationCode

string

WYMAGANY: kod autoryzacji transakcji.

GoogleTransactionReferenceNumberCriteria

Kryteria wyszukiwania płatności na podstawie wygenerowanego przez Google numeru referencyjnego transakcji.

Zapis JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Pola
googleTransactionReferenceNumber

string

WYMAGANE: wygenerowany przez Google numer referencyjny transakcji, który jednoznacznie identyfikuje płatność.

authorizationCode

string

WYMAGANY: kod autoryzacji transakcji.

RequestOriginator

Informacje o organizacji lub podgrupie organizacyjnej, z której pochodzi to żądanie. Dzięki temu Google może wykrywać problemy i nadużyć oraz stosować ustawienia bardziej szczegółowo niż paymentIntegratorAccountId. Jest to szczególnie przydatne, gdy rozmówca jest pośrednikiem usługodawcą, który pobiera żądania od wielu klientów zewnętrznych.

Zapis JSON
{
  "organizationId": string,
  "organizationDescription": string
}
Pola
organizationId

string

WYMAGANE: identyfikator firmy, organizacji lub grupy organizacyjnej, z której pochodzi to żądanie. Musi być niepowtarzalna w obrębie tego elementu (paymentIntegratorAccountId).

organizationDescription

string

WYMAGANE: czytelna dla człowieka nazwa lub opis organizacji, które mogą ułatwić komunikację między pracownikami Google a integratorem w związku z tą organizacją.

ResponseHeader

Obiekt nagłówka, który jest zdefiniowany we wszystkich odpowiedziach wysyłanych z serwera.

Zapis JSON
{
  "responseTimestamp": string
}
Pola
responseTimestamp

string (int64 format)

WYMAGANE: sygnatura czasowa tej odpowiedzi wyrażona w milisekundach od początku epoki. Odbiorca powinien sprawdzić, czy ta sygnatura czasowa to ±60 sekund „teraz”.

GetOrderDetailsResultCode

Wynik wywołania metody getOrderDetails.

Wartości w polu enum
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN Nigdy nie ustawiaj tej wartości domyślnej.
SUCCESS Zamówienie zostało znalezione i zwrócone.
ORDER_CANNOT_BE_RETURNED

Żądane zamówienie, które istnieje, ale nie może zostać zwrócone. Powody obejmują przypadki, gdy orzeczenie zostało usunięte na prośbę jego właściciela.

PAYMENT_TOO_OLD Znaleziono żądaną płatność, ale nie podano szczegółów zamówienia ze względu na datę płatności.
PAYMENT_NOT_FOUND Nie znaleziono żądanej płatności.
NO_ADDITIONAL_DETAILS Znaleziono żądaną płatność, ale szczegóły zamówienia nie są dostępne.

Zamówienie

Informacje o zamówieniu.

Zapis JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Pola
timestamp

string (int64 format)

OPCJONALNIE: sygnatura czasowa złożonego zamówienia, wyrażona w milisekundach od początku epoki. Nie jest dostępna w przypadku niektórych typów zamówień.

orderId

string

OPCJONALNE: ciąg jednoznacznie identyfikujący to zamówienie. Nie jest dostępna w przypadku niektórych typów zamówień.

currencyCode

string

OPCJONALNIE: 3-literowy kod waluty w formacie ISO 4217 w przypadku wszystkich kwot w tym zamówieniu. Nie jest dostępna w przypadku niektórych typów zamówień.

subTotalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota tego zamówienia bez podatku, wyrażona w mikro waluty określonej w order.currencyCode. Jest ona równa SUM(items.totalPrice). Nie jest dostępna w przypadku niektórych typów zamówień.

totalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota tego zamówienia wraz z podatkiem wyrażona w mikro waluty podanej w polu order.currencyCode. Jest ona równa subTotalAmount + SUM(taxes.amount). Nie jest dostępna w przypadku niektórych typów zamówień.

items[]

object (Item)

WYMAGANE: lista produktów, które były częścią tego zamówienia.

taxes[]

object (Tax)

OPCJONALNIE: lista podatków zawartych w tym zamówieniu.

Element

Informacje o elemencie zamówienia.

Zapis JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Pola
description

string

OPCJONALNY: opis zakupionego produktu. Nie jest dostępna w przypadku niektórych typów zamówień.

merchant

string

WYMAGANE: sprzedawca, wykonawca lub producent produktu.

quantity

string (Int64Value format)

OPCJONALNE: zamówiona ilość produktu.

To pole zostanie pominięte, jeśli do produktu nie pasują liczby całkowite (produkty z pomiarem użycia danych mogą mieć np. ułamkowe ilości).

totalPrice

string (Int64Value format)

OPCJONALNIE: łączna cena produktu wyrażona w mikro waluty określonej w polu order.currencyCode. Jeśli pole quantity jest wypełnione, oznacza to łączną cenę dla wszystkich produktów. Nie jest dostępna w przypadku niektórych typów zamówień.

googleProductName

string

WYMAGANE: nazwa usługi Google powiązanej z produktem.

Podatek

Informacje o podatku obowiązującym w przypadku tego zamówienia.

Zapis JSON
{
  "description": string,
  "amount": string
}
Pola
description

string

WYMAGANE: opis podatku.

amount

string (Int64Value format)

WYMAGANE: kwota podatku wyrażona w mikro waluty podanej w order.currencyCode.