- Żądanie HTTP
- Treść żądania
- Treść odpowiedzi
- MandateDetails
- MandateWithNotificationDetails
- CaptureContext
- CaptureResultCode
Inicjuje przepływ środków między kontem klienta należącym do Google a firmą obsługującą płatności. 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": 0,
"revision": 0
},
"requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
"requestTimestamp": "1502220196077"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ",
"transactionDescription": "Google - Music",
"currencyCode": "INR",
"amount": "728000000",
"captureContext": {}
}
Przykładowa odpowiedź wygląda tak:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"result": "SUCCESS",
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
Żądanie HTTP
POST https://www.integratorhost.example.com/v1/capture
Treść żądania
Treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{ "requestHeader": { object ( |
Pola | |
---|---|
requestHeader |
WYMAGANE: wspólny nagłówek dla wszystkich żądań. |
paymentIntegratorAccountId |
WYMAGANE: identyfikator konta integratora płatności określa ograniczenia umowne dotyczące tej transakcji. |
transactionDescription |
WYMAGANE: to jest opis transakcji, który można umieścić na wyciągu klienta. Zlokalizowana zgodnie z ustawieniami użytkownika w języku: |
currencyCode |
WYMAGANE: trzyliterowy kod waluty w standardzie ISO 4217. |
amount |
WYMAGANE: kwota zakupu wyrażona w mikro jednostki waluty. |
captureContext |
WYMAGANE: kontekst dotyczący tego zapisu. |
Pole sumy fopDetails . WYMAGANE: szczegóły formy płatności w przypadku tej transakcji przechwytywania. fopDetails może mieć tylko jedną z tych wartości: |
|
googlePaymentToken |
Token, którego obie firmy będą używać do identyfikowania konta na potrzeby wzajemnych zakupów. |
mandateDetails |
Dane do płatności specyficzne dla upoważnień. |
mandateWithNotificationDetails |
Dane do płatności dotyczące upoważnień, gdy wymagany jest |
Pole sumy
|
|
authenticationRequestId |
OPCJONALNE: Jeśli tak jest, użytkownik został uwierzytelniony bezpośrednio przed tym połączeniem lub podczas ustawiania harmonogramu płatności automatycznych. |
otpVerification |
OPCJONALNIE: dane niezbędne do weryfikacji hasła jednorazowego wygenerowanego na podstawie danych z |
Treść odpowiedzi
Obiekt odpowiedzi dla metody przechwytywania.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{ "responseHeader": { object ( |
Pola | |
---|---|
responseHeader |
WYMAGANE: wspólny nagłówek wszystkich odpowiedzi. |
paymentIntegratorTransactionId |
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 |
userMessage |
WYCOFANY: opis wyniku, który będzie wyświetlany użytkownikowi, jeśli wynik nie jest wartością |
result |
WYMAGANE: wynik tego przechwytywania. |
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 Ta wartość jest wymagana, jeśli |
transactionLimit |
OPCJONALNIE: jeśli Wynik to Musi to być limit w odniesieniu do elementu |
currentBalance |
OPCJONALNIE: jeśli Wynik to Ta wartość musi być w tej samej walucie co |
MandateDetails
Szczegóły upoważnienia do przechwytywania.
Zapis JSON |
---|
{ "mandateId": string } |
Pola | |
---|---|
mandateId |
WYMAGANE: wygenerowany przez Google identyfikator upoważnienia, który został wysłany podczas wywołania |
MandateWithNotificationDetails
Szczegółowe informacje o upoważnieniu, z którego ma pochodzić dane, oraz o wymaganych powiadomieniach.
Zapis JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
Pola | |
---|---|
mandateId |
WYMAGANE: wygenerowany przez Google identyfikator upoważnienia, który został wysłany podczas wywołania |
upcomingTransactionNotificationId |
WYMAGANE: |
CaptureContext
Ten obiekt dostarcza informacji o tym, w jaki sposób wysłano żądanie przechwycenia.
Zapis JSON |
---|
{ "userIpAddress": string } |
Pola | |
---|---|
userIpAddress |
OPCJONALNIE: jest to adres IP urządzenia użytkownika, jeśli zakup został dokonany przez użytkownika w sesji. Jeśli użytkownika nie było w sesji, pole będzie opróżniane. Jeśli konkretna umowa nie przewiduje, że to pole jest wymagane, będzie ono zawsze puste. |
CaptureResultCode
Kody wyników do przechwycenia.
Wartości w polu enum | |
---|---|
UNKNOWN_RESULT |
Nigdy nie ustawiaj tej wartości domyślnej. |
SUCCESS |
Pomyślne zdjęcie. Dostarcz towary. |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
Wartość amount tego żądania zapisu przekracza limit na transakcję. Jeśli ten kod jest używany, wypełnij pole „transactionLimit” w celu wyświetlania wiadomości użytkownikom. |
CHARGE_EXCEEDS_DAILY_LIMIT |
W tej chwili nie możesz dokonywać zakupów na tym koncie, ponieważ przekroczono limit dzienny. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
Tego konta nie można teraz używać do zakupów, ponieważ przekroczono miesięczny limit. |
CHARGE_UNDER_LIMIT |
amount tego żądania zapisu nie spełnia wymagań minimalnej kwoty transakcji. |
INSUFFICIENT_FUNDS |
Na tym koncie nie ma wystarczających środków, aby zagwarantować wykonanie tego zdjęcia. |
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY |
To konto nie obsługuje żądanej waluty. |
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. |
GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER |
Konto jest aktywne, ale tag GPT został unieważniony przez użytkownika po stronie integratora. 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. |
TOKEN_REFRESH_REQUIRED |
Zwrócenie tej wartości wymaga od użytkownika przejścia procesu odświeżania. |
OTP_NOT_MATCHED |
Hasło jednorazowe nie odpowiada temu, co wysłał integrator. |
OTP_ALREADY_USED |
Hasło jednorazowe zostało już użyte. |
RISK_DECLINED |
Transakcja została odrzucona z powodu kontroli ryzyka po stronie integratora. Jest to trwała niepowodzenie w przypadku tej płatności, ale nie powoduje zamknięcia instrumentu płatności przez Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
Na koncie użytkownika nie ma skonfigurowanego żadnego działającego źródła finansowania, z którego można zapłacić za transakcję. |
FUNDING_SOURCE_UNAVAILABLE |
Wydawca bazowy lub źródło środków jest niedostępny. Jeśli spróbujesz ponownie, próba dokonania tej płatności się nie powiedzie. Google ponawia próbę dokonania płatności, gdy partner zwróci kod odpowiedzi 4xx lub 5xx. Z tego powodu partnerzy powinni zwykle zwracać jeden z tych kodów odpowiedzi, jeśli ponowna próba tej samej płatności może się udać, gdy źródło środków będzie ponownie dostępne. Jeśli jednak z przyczyn technicznych ponowienie próby płatności przez Google nadal się nie powiedzie, partner może zwrócić kwotę „FUNDING_SOURCE_UNAVAILABLE” , aby poinformować Google, że ta płatność nie powinna ponawiać próby płatności. Uwaga: Google może ponownie spróbować zrealizować tę płatność, ale z innym identyfikatorem requestId. Ta prośba o płatność zostanie oznaczona jako odrzucona. |
MANDATE_NOT_ACTIVE |
Upoważnienie użyte do tego zapisu nie jest już aktywne. Ta wartość zwrócona spowoduje zamknięcie przez Google instrumentu płatniczego, którego używasz do upoważnień użytkownika. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
Powiadomienie wysłane do użytkownika o cyklicznej płatności za polecenie wygasło. |