Method: getOrderDetails

Złożyć zamówienie, które będzie podstawą do naliczania opłat od użytkowników przez Google.

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 zwróci kodu HTTP 200, odpowiedzi na to zapytanie mogą być puste. Treść odpowiedzi jest pusta w sytuacjach, gdy ErrorResponse z jasnym opisem mógłby pomóc atakującemu zrozumieć identyfikator konta integratora płatności innych integratorów. W takich sytuacjach, gdy klucz podpisywania jest niezgodny, nie znaleziono identyfikatora integratora płatności lub klucz szyfrowania był nieznany, metoda zwraca błąd HTTP 404 z pustą treścią. Jeśli uda się zweryfikować podpis żądania, w treści odpowiedzi pojawią się dodatkowe informacje o błędzie.

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)

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

paymentIntegratorAccountId

string

WYMAGANE: identyfikator konta integratora płatności, który identyfikuje dzwoniącego oraz powiązane ograniczenia umowne związane z tą interakcją.

orderLookupCriteria

object (OrderLookupCriteria)

WYMAGANE: kryteria wskazujące zamówienie, które ma być wyszukiwane.

requestOriginator

object (RequestOriginator)

OPCJONALNIE: informacje o organizacji lub podgrupie organizacyjnej, która przesłała tę prośbę (jeśli integrator dzwoni do nas w imieniu innej organizacji).

Treść odpowiedzi

Ładunek odpowiedzi dla metody 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)

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

result

enum (GetOrderDetailsResultCode)

REQUIRED: wynik tego wywołania.

order

object (Order)

OPCJONALNE: informacje dotyczące zamówienia, za które dokonano płatności. (widoczna tylko wtedy, gdy result zakończy się powodzeniem).

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

REQUIRED: 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)

REQUIRED: sygnatura czasowa tego żądania w milisekundach od początku epoki. Odbiorca powinien sprawdzić, czy ta sygnatura czasowa mieści się w zakresie ± 60 s „teraz”. Ta sygnatura czasowa żądania nie jest idempotentna przy ponownych próbach.

userLocale
(deprecated)

string

WYCOFANE: opcjonalnie dwu- lub trzyliterowy kod języka w formacie ISO 639-2 alfa 3, po którym następuje łącznik i kod kraju w formacie ISO 3166-1 Alpha-2, np. „pt”, „pt-BR”, „fil” lub „fil-PH”. Ułatwia to obsługę pól userMessage w odpowiedzi.

protocolVersion

object (Version)

REQUIRED: wersja żądania.

Wersja

Obiekt wersji będący ustrukturyzowaną formą klasycznej struktury wersji a.b.c. Główne wersje tego samego numeru zawsze będą zgodne. Pamiętaj, że drobne zmiany i zmiany mogą się zmieniać często i bez powiadomienia. Integrator musi obsługiwać wszystkie żądania tej samej wersji głównej.

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

integer

REQUIRED: wersja główna. Ten element jest oznaczony w przypadku żądań zgodności z różnymi wersjami Google Workspace.

minor

integer

REQUIRED: wersja podrzędna. To oznacza ważne poprawki błędów.

revision

integer

REQUIRED: wersja podrzędna. Oznaczają 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 wysłana do integratora płatności przez operatora podczas wywołania uwierzytelniania.

arnCriteria

object (ArnCriteria)

Wyszukiwanie na podstawie numeru referencyjnego centrum autoryzacyjnego (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Wyszukiwanie na podstawie numeru referencyjnego transakcji Google.

ArnCriteria

Kryteria wyszukiwania płatności na podstawie numeru referencyjnego centrum autoryzacyjnego (ARN).

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

string

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

authorizationCode

string

REQUIRED: kod autoryzacji transakcji.

GoogleTransactionReferenceNumberCriteria

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

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

string

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

authorizationCode

string

REQUIRED: kod autoryzacji transakcji.

RequestOriginator

Informacje o organizacji lub podgrupie organizacyjnej, z której pochodzi to żądanie. Dzięki temu możemy wykrywać problemy lub nadużycia i wdrażać rozwiązania kontrolne na bardziej szczegółowym poziomie niż paymentIntegratorAccountId. Jest ona szczególnie przydatna, gdy osoba wywołująca jest pośrednikiem, który pozyskuje żą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. Nie może się powtarzać w obrębie tej wartości (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 zdefiniowany we wszystkich odpowiedziach wysyłanych z serwera.

Zapis JSON
{
  "responseTimestamp": string
}
Pola
responseTimestamp

string (int64 format)

REQUIRED: sygnatura czasowa tej odpowiedzi wyrażona w milisekundach od początku epoki. Odbiorca powinien sprawdzić, czy ta sygnatura czasowa mieści się w zakresie ± 60 s „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 istnieje, ale nie można go zwrócić. Obejmuje to przypadki, gdy orzeczenie zostało usunięte na prośbę jego właściciela.

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

Zamów

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żenia zamówienia, wyrażona w milisekundach od początku epoki. Opcja niedostępna w przypadku niektórych typów zamówień.

orderId

string

OPCJONALNIE: ciąg znaków jednoznacznie identyfikujący zamówienie. Opcja niedostępna w przypadku niektórych typów zamówień.

currencyCode

string

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

subTotalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota tego zamówienia przed opodatkowaniem, wyrażona w niewielkich częściach waluty określonej w polu order.currencyCode. Ta wartość jest równa SUM(items.totalPrice). Opcja niedostępna w przypadku niektórych typów zamówień.

totalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota tego zamówienia razem z podatkiem, wyrażona w mikro walucie podanej w polu order.currencyCode. Ta wartość jest równa subTotalAmount + SUM(taxes.amount). Opcja niedostępna w przypadku niektórych typów zamówień.

items[]

object (Item)

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

taxes[]

object (Tax)

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

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. Opcja niedostępna w przypadku niektórych typów zamówień.

merchant

string

WYMAGANE: sprzedawca, wykonawca lub producent produktu.

quantity

string (Int64Value format)

OPTIONAL: zamówiona liczba sztuk produktu.

To pole zostanie pominięte, jeśli dane wyświetlane w ilościach całkowitych nie dotyczą danego produktu (produkty z pomiarem mogą być np. przedstawiane w ilościach ułamkowych).

totalPrice

string (Int64Value format)

OPCJONALNIE: łączna cena tego produktu wyrażona w niewielkich częściach waluty określonej w polu order.currencyCode. Jeśli pole quantity jest wypełnione, odzwierciedla łączną cenę całej ilości. Opcja niedostępna w przypadku niektórych typów zamówień.

googleProductName

string

WYMAGANE: nazwa usługi Google dotyczącej produktu.

Podatek

Informacje o podatku zastosowanym do tego zamówienia.

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

string

REQUIRED: opis podatku.

amount

string (Int64Value format)

WYMAGANE: kwota podatku wyrażona w procentach waluty określonej w order.currencyCode.