Method: asynchronousCapture

Wywołuje rozpoczęcie operacji związanej z przepływem środków między kontem klienta a integratorem. Integrator powinien zaakceptować żądanie i wykonać wszystkie czynności niezbędne do zakończenia przechwytywania (np. zebrać kod PIN od użytkownika). Integrator informuje Google o ostatecznym wyniku przechwytywania, wywołując interfejs CaptureResult Notification API.

Kombinacja typu requestId w nagłówku i paymentIntegratorAccountId to klucz idempotentności, który jednoznacznie identyfikuje tę transakcję. Wszystkie mutacje w tej transakcji (zwroty środków) wypełniają wartość requestId w polu captureRequestId.

Jeśli podczas przetwarzania żądania punkt końcowy napotka błąd, treść odpowiedzi z tego punktu końcowego powinna być typu ErrorResponse.

Przykładowe żądanie wygląda tak:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
    "requestTimestamp": "1502220196077"
  },
  "paymentIntegratorAccountId": "InvisiCashIN_INR",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "728000000"
}

Przykładowa odpowiedź wygląda tak:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "ACKNOWLEDGED",
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}

Żądanie HTTP

POST https://www.integratorhost.example.com/v1/asynchronousCapture

Treść żądania

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

Zapis JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field fopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  },
  "tokenizedInstrumentDetails": {
    object (TokenizedInstrumentDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Pola
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

WYMAGANE: identyfikator konta integratora płatności określa ograniczenia umowne dotyczące tej transakcji.

transactionDescription

string

WYMAGANE: to jest opis transakcji, który można umieścić na wyciągu klienta. Zlokalizowana zgodnie z ustawieniami użytkownika w języku: requestHeader. Ten format można zmienić bez powiadomienia. Nie wolno go analizować.

currencyCode

string

WYMAGANE: trzyliterowy kod waluty w standardzie ISO 4217.

amount

string (Int64Value format)

WYMAGANE: kwota zakupu w milionowych częściach jednostki waluty.

Pole sumy fopDetails.

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

upiDetails

object (UpiDetails)

OPCJONALNIE: szczegóły płatności związane z instrumentami UPI.

tokenizedInstrumentDetails

object (TokenizedInstrumentDetails)

OPCJONALNIE: dane do płatności dotyczące instrumentów tokenizowanych.

Treść odpowiedzi

Obiekt odpowiedzi dla metody przechwytywania.

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

Zapis JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "result": enum (AsynchronousCaptureResultCode)
}
Pola
responseHeader

object (ResponseHeader)

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

paymentIntegratorTransactionId

string

WYMAGANE: 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

result

enum (AsynchronousCaptureResultCode)

WYMAGANE: wynik wywołania asynchronicznego przechwytywania.

UpiDetails

Szczegółowe informacje o koncie UPI, z którego ma być przechwytywane.

Zapis JSON
{
  "vpa": string
}
Pola
vpa

string

WYMAGANE: wirtualny adres płatności użytkownika (VPA) używany do przesyłania pieniędzy przy użyciu protokołu UPI. Na przykład foo@icici.

TokenizedInstrumentDetails

Szczegółowe informacje o koncie, z którego ma zostać przechwycony kod.

Zapis JSON
{
  "googlePaymentToken": string
}
Pola
googlePaymentToken

string

WYMAGANE: tego tokena będą używać obie firmy do identyfikowania konta na potrzeby zakupów.

AsynchronousCaptureResultCode

Kody wyników przechwytywania asynchronicznego.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
ACKNOWLEDGED Wysłano prośbę o przechwytywanie, a integrator wykona dodatkowe czynności, aby określić, czy przechwytywanie się udało. Gdy integrator zna wynik przechwytywania, poinformuje o tym Google, wywołując interfejs API captureResultNotification.
ACCOUNT_CLOSED

Konto użytkownika przypisane do integratora zostało zamknięte.

Zwrócenie tej wartości spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument, wykonując ponownie proces tworzenia powiązania.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Konto użytkownika u integratora zostało zamknięte. Istnieje podejrzenie przejęcia konta.

Zwrócenie tej wartości spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument, wykonując ponownie proces tworzenia powiązania.

ACCOUNT_ON_HOLD Konto jest wstrzymane.
ACCOUNT_CLOSED_FRAUD

Konto użytkownika powiązane z integratorem zostało zamknięte z powodu oszustwa.

Zwrócenie tej wartości spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument, wykonując ponownie proces tworzenia powiązania.