Method: disburseFunds

Inicjuje przesyłanie pieniędzy między firmą obsługującą płatności a kontem klienta. Kombinacja requestId w nagłówku i paymentIntegratorAccountId jest kluczem idempotentności i jednoznacznie identyfikuje tę transakcję. Wszystkie mutacje tej transakcji wypełniają wartość requestId w polu disburseFundsRequestId.

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": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "208000000"
}

Przykładowa odpowiedź wygląda tak:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA",
  "disburseFundsResult": {
    "disburseFundsResultCode": "SUCCESS"
  }
}

Żądanie HTTP

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

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 destinationFopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  }
  // End of list of possible types for union field destinationFopDetails.
}
Pola
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

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

transactionDescription

string

REQUIRED: to opis transakcji, który może zostać umieszczony na wyciągu klienta. Przetłumaczony na wartość userLocale z pliku requestHeader. Ten format można zmienić bez powiadomienia i nigdy nie można go analizować.

currencyCode

string

WYMAGANE: 3-literowy kod waluty w formacie ISO 4217

amount

string (Int64Value format)

REQUIRED: kwota zakupu wyrażona w mikro jednostki waluty.

Pole sumy destinationFopDetails.

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

upiDetails

object (UpiDetails)

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

Treść odpowiedzi

Obiekt odpowiedzi dla metody wypłaty środków.

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

Zapis JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
Pola
responseHeader

object (ResponseHeader)

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

paymentIntegratorTransactionId

string

WYMAGANE: ten identyfikator jest specyficzny dla integratora i jest przez niego generowany. Jest to identyfikator, na podstawie którego integrator zna tę transakcję.

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

disburseFundsResult

object (DisburseFundsResult)

REQUIRED: wynik wywołania wypłaty środków.

UpiDetails

Szczegóły konta UPI, na które ma zostać wypłacona płatność.

Zapis JSON
{
  "vpa": string
}
Pola
vpa

string

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

DisburseFundsResult

Informacje o ostatecznym wyniku wypłaty.

Zapis JSON
{
  "disburseFundsResultCode": enum (DisburseFundsResultCode),
  "rawResult": {
    object (RawResult)
  },

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

enum (DisburseFundsResultCode)

REQUIRED: kod wyniku tej wypłaty.

rawResult

object (RawResult)

OPCJONALNY: nieprzetworzony wynik wypłaty. Informacje są wykorzystywane w celu informowania silnika ryzyka i analiz Google. 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 takim przypadku wartością scope jest „visa”, a rawCode – tym, 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 disburseFundsResultCode ma wartość DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT, jest to wartość maksymalnej dozwolonej transakcji. Służy on do przygotowywania uporządkowanych wiadomości kierowanych do użytkowników i analizowania współczynnika odrzuceń.

Ta kwota to mikro tej samej wartości currencyCode co pierwotne wywołanie metody disburseFunds.

transactionMinLimit

string (Int64Value format)

OPCJONALNIE: jeśli disburseFundsResultCode ma wartość DISBURSEMENT_UNDER_TRANSACTION_LIMIT, jest to wartość minimalnej dopuszczalnej transakcji. Służy on do przygotowywania uporządkowanych wiadomości kierowanych do użytkowników i analizowania współczynnika odrzuceń.

Ta kwota to mikro tej samej wartości currencyCode co pierwotne wywołanie metody disburseFunds.

DisburseFundsResultCode

Kody wyników wywołania wypłaty środków.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
SUCCESS Środki zostały wypłacone.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT Żądana kwota wypłaty nie spełnia minimalnej kwoty transakcji integratora. Jeśli używasz tego kodu, wypełnij pole transactionMinLimit minimalną kwotą transakcji na potrzeby wiadomości dla użytkowników.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT Żądana kwota wypłaty przekracza maksymalny limit integratora na transakcję. Jeśli używasz tego kodu, wypełnij pole transactionMaxLimit limitem transakcji na potrzeby przesyłania wiadomości użytkownikom.
ACCOUNT_CLOSED Konto użytkownika powiązane z integratorem zostało zamknięte. Ta wartość zwrócona spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Konto użytkownika z integratorem zostało zamknięte. Podejrzewa się, że konto zostało przejęte. Ta wartość zwrócona spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument.
ACCOUNT_CLOSED_FRAUD Konto użytkownika zablokowane u integratora zostało zamknięte z powodu oszustwa. Ta wartość zwrócona spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument.
ACCOUNT_ON_HOLD Konto użytkownika jest zablokowane.

RawResult

Nieprzetworzony obiekt wyniku.

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

string

OPTIONAL: zakres obiektu rawCode; może być pusty.

rawCode

string

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