- Żądanie HTTP
- Treść żądania
- Treść odpowiedzi
- RequestHeader
- Wersja
- OrderLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- RequestOriginator
- ResponseHeader
- GetOrderDetailsResultCode
- Zamówienie
- Element
- Podatek
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
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.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 |
REQUIRED: wspólny nagłówek dla wszystkich żądań. |
paymentIntegratorAccountId |
WYMAGANE: identyfikator konta integratora płatności, który identyfikuje dzwoniącego oraz powiązane ograniczenia umowne związane z tą interakcją. |
orderLookupCriteria |
WYMAGANE: kryteria wskazujące zamówienie, które ma być wyszukiwane. |
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 ( |
Pola | |
---|---|
responseHeader |
REQUIRED: wspólny nagłówek wszystkich odpowiedzi. |
result |
REQUIRED: wynik tego wywołania. |
order |
OPCJONALNE: informacje dotyczące zamówienia, za które dokonano płatności. (widoczna 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 |
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 |
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 |
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 |
protocolVersion |
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 |
REQUIRED: wersja główna. Ten element jest oznaczony w przypadku żądań zgodności z różnymi wersjami Google Workspace. |
minor |
REQUIRED: wersja podrzędna. To oznacza ważne poprawki błędów. |
revision |
REQUIRED: wersja podrzędna. Oznaczają 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 wysłana do integratora płatności przez operatora podczas wywołania uwierzytelniania. |
arnCriteria |
Wyszukiwanie na podstawie numeru referencyjnego centrum autoryzacyjnego (ARN). |
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 |
WYMAGANE: numer referencyjny centrum autoryzacyjnego (ARN), który jednoznacznie identyfikuje płatność. Musi mieć 23 cyfry. |
authorizationCode |
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 |
WYMAGANE: wygenerowany przez Google numer referencyjny transakcji, który jednoznacznie identyfikuje płatność. |
authorizationCode |
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 |
WYMAGANE: identyfikator firmy, organizacji lub grupy organizacyjnej, z której pochodzi to żądanie. Nie może się powtarzać w obrębie tej wartości ( |
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 zdefiniowany we wszystkich odpowiedziach wysyłanych z serwera.
Zapis JSON |
---|
{ "responseTimestamp": string } |
Pola | |
---|---|
responseTimestamp |
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 ( |
Pola | |
---|---|
timestamp |
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 |
OPCJONALNIE: ciąg znaków jednoznacznie identyfikujący zamówienie. Opcja niedostępna w przypadku niektórych typów zamówień. |
currencyCode |
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 |
OPCJONALNIE: łączna kwota tego zamówienia przed opodatkowaniem, wyrażona w niewielkich częściach waluty określonej w polu |
totalAmount |
OPCJONALNIE: łączna kwota tego zamówienia razem z podatkiem, wyrażona w mikro walucie podanej w polu |
items[] |
REQUIRED: lista produktów, które były częścią tego zamówienia. |
taxes[] |
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 |
OPCJONALNY: opis zakupionego produktu. Opcja niedostępna w przypadku niektórych typów zamówień. |
merchant |
WYMAGANE: sprzedawca, wykonawca lub producent produktu. |
quantity |
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 |
OPCJONALNIE: łączna cena tego produktu wyrażona w niewielkich częściach waluty określonej w polu |
googleProductName |
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 |
REQUIRED: opis podatku. |
amount |
WYMAGANE: kwota podatku wyrażona w procentach waluty określonej w |