- Żądanie HTTP
- Treść żądania
- Treść odpowiedzi
- RequestHeader
- Wersja
- OrderLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- RequestOriginator
- ResponseHeader
- GetOrderDetailsResultCode
- Zamówienie
- Element
- Podatek
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 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.ErrorResponse
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 ( |
| Pola | |
|---|---|
requestHeader |
WYMAGANE: wspólny nagłówek dla wszystkich żądań. |
paymentIntegratorAccountId |
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 |
WYMAGANE: kryteria wskazujące zamówienie, które ma zostać wyszukane. |
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 ( |
| Pola | |
|---|---|
responseHeader |
WYMAGANE: wspólny nagłówek wszystkich odpowiedzi. |
result |
WYMAGANE: wynik tego wywołania. |
order |
OPCJONALNIE: informacje o zamówieniu, za pomocą którego dokonano płatności. Występuje tylko wtedy, gdy |
RequestHeader
Obiekt nagłówka zdefiniowany we wszystkich żądaniach wysyłanych do serwera.
| Zapis JSON |
|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object ( |
| Pola | |
|---|---|
requestId |
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 |
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 |
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 |
protocolVersion |
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 |
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 |
WYMAGANE: wersja podrzędna. Oznacza to istotne poprawki błędów. |
revision |
WYMAGANE: wersja podrzędna. Oznacza to poprawki drobnych błędów. |
OrderLookupCriteria
Kryteria wyszukiwania zamówienia.
| Zapis JSON |
|---|
{ // Union field |
| Pola | |
|---|---|
Pole sumy
|
|
dcb3CorrelationId |
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 |
Wyszukiwanie na podstawie numeru referencyjnego centrum autoryzacyjno-rozliczeniowego (ARN). |
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 |
WYMAGANE: numer referencyjny centrum autoryzacyjno-rozliczeniowego (ARN), który jednoznacznie identyfikuje płatność. Musi mieć 23 cyfry. |
authorizationCode |
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 |
WYMAGANE: wygenerowany przez Google numer referencyjny transakcji, który jednoznacznie identyfikuje płatność. |
authorizationCode |
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 |
WYMAGANE: identyfikator firmy, organizacji lub grupy organizacyjnej, z której pochodzi to żądanie. Musi być niepowtarzalna w obrębie tego elementu ( |
organizationDescription |
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 |
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 ( |
| Pola | |
|---|---|
timestamp |
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 |
OPCJONALNE: ciąg jednoznacznie identyfikujący to zamówienie. Nie jest dostępna w przypadku niektórych typów zamówień. |
currencyCode |
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 |
OPCJONALNIE: łączna kwota tego zamówienia bez podatku, wyrażona w mikro waluty określonej w |
totalAmount |
OPCJONALNIE: łączna kwota tego zamówienia wraz z podatkiem wyrażona w mikro waluty podanej w polu |
items[] |
WYMAGANE: lista produktów, które były częścią tego zamówienia. |
taxes[] |
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 |
OPCJONALNY: opis zakupionego produktu. Nie jest dostępna w przypadku niektórych typów zamówień. |
merchant |
WYMAGANE: sprzedawca, wykonawca lub producent produktu. |
quantity |
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 |
OPCJONALNIE: łączna cena produktu wyrażona w mikro waluty określonej w polu |
googleProductName |
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 |
WYMAGANE: opis podatku. |
amount |
WYMAGANE: kwota podatku wyrażona w mikro waluty podanej w |