Method: captureResultNotification

Powiadom Google o wyniku przechwytywania po wywołaniu metody capture lub asynchronousCapture.

Wartość captureResult jest idempotentna dla tego parametru captureRequestId, więc nie można jej zmienić przez kolejne wywołanie tej metody.

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": "KcgwSKrV76eVNDUbsZ4UA3",
    "requestTimestamp": "1481852928293"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "awNaC510cefae3IJdNEvW2",
  "captureResult": {
    "captureResultCode": "SUCCESS"
  }
}

Przykładowa odpowiedź wygląda tak:


{
  "responseHeader": {
    "responseTimestamp": "1481852928324"
  },
  "result": "SUCCESS"
}

Żądanie HTTP

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

Treść żądania

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

Zapis JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
Pola
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

WYMAGANE: identyfikator konta integratora płatności, na którym przechwycono dane.

captureRequestId

string

WYMAGANE: unikalny identyfikator transakcji. To jest requestId wygenerowany przez Google podczas rozmowy capture lub asynchronousCapture, z którą jest powiązane to żądanie.

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

captureResult

object (CaptureResult)

WYMAGANE: wynik tego przechwytywania.

paymentIntegratorTransactionId

string

OPCJONALNY: ten identyfikator jest powiązany z integratorem i jest przez niego generowany. Jest to identyfikator, za pomocą którego integrator zna tę transakcję.

Dla wygody ten identyfikator jest podany w szczegółach płatności

Treść odpowiedzi

Obiekt odpowiedzi dla metody captureResultNotification.

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

Zapis JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (CaptureResultNotificationResultCode)
}
Pola
responseHeader

object (ResponseHeader)

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

result

enum (CaptureResultNotificationResultCode)

WYMAGANE: wynik tego wywołania.

CaptureResult

Informacje o ostatecznym wyniku skanowania.

Zapis JSON
{
  "captureResultCode": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string,
  "currentBalance": string
  // End of list of possible types for union field FailureDetail.
}
Pola
captureResultCode

enum (CaptureResultCode)

WYMAGANE: kod wyniku tego zapisu.

rawResult

object (RawResult)

OPCJONALNY: nieprzetworzony wynik tego zapisu. Dane są używane do przekazywania informacji do programu wykrywającego zagrożenia Google i analiz. W przypadku mapowania kodu odrzucenia czasami dochodzi do utraty danych. Integrator może przekazać Google nieprzetworzony kod. Brama karty kredytowej (integrator) może na przykład użyć tego pola, by przekazać Google dokładny kod odrzucenia otrzymany z sieci VISA. W tym przypadku scope będzie to „wiza”. a rawCode to wszystko, co zwróciła sieć VISA.

Ta wartość jest wymagana, jeśli result nie ma wartości SUCCESS.

Pole sumy FailureDetail.

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

transactionMaxLimit

string (Int64Value format)

OPCJONALNIE: jeśli captureResultCode ma wartość CHARGE_EXCEEDS_TRANSACTION_LIMIT, to jest wartość maksymalnej dozwolonej transakcji. Służy do analizy ustrukturyzowanego przesyłania wiadomości dla użytkowników i analizy współczynnika odrzuceń.

Ta wartość to micros tej samej wartości currencyCode co pierwotne wywołanie metody capture lub asynchronousCapture.

transactionMinLimit

string (Int64Value format)

OPCJONALNIE: jeśli captureResultCode to CHARGE_UNDER_TRANSACTION_LIMIT, jest to wartość minimalnej dozwolonej transakcji. Służy do analizy ustrukturyzowanego przesyłania wiadomości dla użytkowników i analizy współczynnika odrzuceń.

Ta wartość to micros tej samej wartości currencyCode co pierwotne wywołanie metody capture lub asynchronousCapture.

currentBalance

string (Int64Value format)

OPCJONALNIE: jeśli Wynik to INSUFFICIENT_FUNDS, oznacza to, że jest to aktualne dostępne saldo na koncie użytkownika (w mikro). Służy do tworzenia ustrukturyzowanych komunikatów kierowanych do użytkowników.

Ta wartość musi być w tej samej walucie co currencyCode w żądaniu.

CaptureResultCode

Kody wyników przechwytywania.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
SUCCESS Przechwycono.
CHARGE_UNDER_TRANSACTION_LIMIT Żądana kwota przechwytywania nie spełnia minimalnej kwoty na transakcję integratora. Jeśli ten kod jest używany, w polu transactionMinLimit wpisz minimalną kwotę transakcji na potrzeby wiadomości dla użytkowników.
CHARGE_EXCEEDS_TRANSACTION_LIMIT Żądana kwota przechwytywania przekracza maksymalny limit na transakcję integratora. Jeśli ten kod jest używany, w polu transactionMaxLimit wpisz limit transakcji na potrzeby wiadomości dla użytkowników.
CHARGE_EXCEEDS_DAILY_LIMIT Nie możesz teraz używać tego konta do dokonywania zakupów, ponieważ został przekroczony limit dzienny.
CHARGE_EXCEEDS_MONTHLY_LIMIT Nie możesz teraz używać konta użytkownika do robienia zakupów, ponieważ przekroczył on miesięczny limit.
INSUFFICIENT_FUNDS Na tym koncie nie ma wystarczających środków, aby zagwarantować wykonanie tego zdjęcia.
SUSPECTED_FRAUD Integrator ma powody, aby podejrzewać, że ta transakcja jest oszustwem.
ACCOUNT_CLOSED Konto użytkownika powiązane z integratorem zostało zamknięte. Ta wartość zwrotna spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Konto użytkownika integratora zostało zamknięte. Istnieje podejrzenie przejęcia konta. Ta wartość zwrotna spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument.
ACCOUNT_CLOSED_FRAUD Konto użytkownika powiązane z integratorem zostało zamknięte z powodu oszustwa. Ta wartość zwrotna spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument.
ACCOUNT_ON_HOLD Konto użytkownika jest wstrzymane.
OTP_NOT_MATCHED Hasło jednorazowe nie odpowiada temu, co wysłał integrator.
OTP_ALREADY_USED Hasło jednorazowe zostało już użyte.
CAPTURE_REQUEST_EXPIRED Przejęcie środków użytkownika przez integratora trwało zbyt długo. Google będzie traktować to odrzucenie jako ostateczny stan, dlatego integrator musi zadbać o to, aby środki użytkownika nie zostały pobrane później lub że użytkownik otrzyma automatyczny zwrot środków, jeśli rejestracja zakończyła się sukcesem.
INVALID_PIN Użytkownik podał nieprawidłowy kod PIN.
OS_LOCK_FAILED Ten proces płatności wymaga blokady systemu operacyjnego, a użytkownik nie może odblokować urządzenia.
PIN_ENTRY_ATTEMPTS_EXHAUSTED Ten proces płatności wymaga podania kodu PIN użytkownika. Użytkownik nie próbował podać kodu PIN tyle razy, że nie mógł już wykonywać 1 próby.
USER_EXITED_PAYMENT_FLOW Użytkownik anulował całą próbę płatności (na ekranie blokady systemu operacyjnego lub na ekranie wprowadzania kodu PIN).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED Nie możesz teraz używać konta użytkownika do robienia zakupów, ponieważ przekroczył on miesięczny limit prób transakcji.
DECLINED_BY_ISSUER

Tego kodu odrzucenia nie należy nigdy używać w stałym stanie. Jest to tymczasowy kod typucatch-all, który ma być używany, gdy integrator napotka nieznany kod odrzucenia u wydawcy instrumentu użytkownika. Tego kodu wyniku można używać, gdy integrator określa bardziej odpowiedni kod wyniku do użycia lub negocjuje dodanie nowego kodu wyniku do tej specyfikacji.

Co ważne, ten kod odrzucenia to rzeczywisty kod odrzucenia. Z punktu widzenia Google jest to stały spadek. Po zwróceniu tego kodu przez integratora musi znaleźć kod wydawcy i zwrócić środki użytkownikowi, jeśli okaże się, że kod rzeczywiście oznaczał SUCCESS.

Jeśli ten kod odrzucenia jest używany w przypadku tego samego kodu odrzucenia przez więcej niż pewną liczbę dni, Google potraktuje go jako błąd i odpowiednio śledzi go pod kątem wszelkich kar umownych dotyczących naprawiania błędów.

RawResult

Obiekt nieprzetworzonego wyniku.

Zapis JSON
{
  "scope": string,
  "rawCode": string
}
Pola
scope

string

OPTIONAL: zakres kodu rawCode może być pusty.

rawCode

string

WYMAGANE: nieprzetworzony kod z integratora lub jego podsystemów.

CaptureResultNotificationResultCode

Kody wyników dla metody captureResultNotification.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
SUCCESS Powiadomienie o wyniku przechwytywania zostało przetworzone.