Method: disburseFunds

Inicjuje przepływ środków między firmą obsługującą płatności a kontem klienta. Kombinacja typu requestId w nagłówku i paymentIntegratorAccountId to klucz idempotentności, który jednoznacznie identyfikuje tę transakcję. Wszystkie mutacje w 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)

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 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)

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

disburseFundsResult

object (DisburseFundsResult)

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

UpiDetails

Szczegóły konta UPI, na które chcesz wypłacić środki.

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.

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)

WYMAGANE: kod wyniku wypłaty.

rawResult

object (RawResult)

OPCJONALNIE: nieprzetworzony wynik wypłaty. 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 disburseFundsResultCode ma wartość DISBURSEMENT_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 disburseFunds.

transactionMinLimit

string (Int64Value format)

OPCJONALNIE: jeśli disburseFundsResultCode to DISBURSEMENT_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 disburseFunds.

DisburseFundsResultCode

Kody wyników rozmowy dotyczącej wypłaty środków.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
SUCCESS Wypłata została zrealizowana.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT Żądana kwota wypłaty nie spełnia minimalnej kwoty wypłaty określonej przez integratora na transakcję. Jeśli ten kod jest używany, w polu transactionMinLimit wpisz minimalną kwotę transakcji na potrzeby wiadomości dla użytkowników.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT Żądana kwota wypłaty 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.
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.

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.