- HTTP-запрос
- Тело запроса
- Тело ответа
- Захватрезультата
- CaptureResultCode
- RawResult
- CaptureResultNotificationResultCode
Уведомите Google о результате захвата после выполнения capture или вызова метода asynchronousCapture .
Значение captureResult является идемпотентным для этого captureRequestId , поэтому его значение не может быть изменено при последующем вызове этого метода.
Если конечная точка обнаружит ошибку при обработке запроса, ответ от этой конечной точки будет иметь тип .ErrorResponse
Ответы на этот запрос могут быть пустыми, если этот метод не возвращает HTTP 200. Тело ответа пусто в ситуациях, когда с четким описанием может использоваться, чтобы помочь злоумышленнику понять идентификатор учетной записи интегратора платежей других интеграторов. В таких ситуациях, когда ключ подписи не совпадает, идентификатор интегратора платежей не найден или ключ шифрования неизвестен, этот метод вернет HTTP 404 с пустым телом. Если подпись запроса может быть проверена, в теле ответа будет возвращена дополнительная информация об ошибке.ErrorResponse
Пример запроса выглядит так:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 1,
"revision": 0
},
"requestId": "KcgwSKrV76eVNDUbsZ4UA3",
"requestTimestamp": "1481852928293"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"captureRequestId": "awNaC510cefae3IJdNEvW2",
"captureResult": {
"captureResultCode": "SUCCESS"
}
}
Пример ответа выглядит так:
{
"responseHeader": {
"responseTimestamp": "1481852928324"
},
"result": "SUCCESS"
}
HTTP-запрос
POST https://vgw.googleapis.com/secure-serving/gsp/v1/captureResultNotification/ :PIAID
Тело запроса
Тело запроса содержит данные следующей структуры:
| JSON-представление |
|---|
{ "requestHeader": { object ( |
| Поля | |
|---|---|
requestHeader | ОБЯЗАТЕЛЬНО : общий заголовок для всех запросов. |
paymentIntegratorAccountId | ОБЯЗАТЕЛЬНО : идентификатор учетной записи платежного интегратора, на которой произошел захват. |
captureRequestId | ОБЯЗАТЕЛЬНО : уникальный идентификатор для этой транзакции. Это Это строка максимальной длиной 100 символов, содержащая только символы «az», «AZ», «0-9», «:», «-» и «_». |
captureResult | ОБЯЗАТЕЛЬНО : Результат этого захвата. |
paymentIntegratorTransactionId | НЕОБЯЗАТЕЛЬНО : этот идентификатор специфичен для интегратора и генерируется интегратором. Это идентификатор, по которому интегратор знает эту транзакцию. Для удобства этот идентификатор включен в детали денежного перевода. |
Тело ответа
Объект ответа для метода captureResultNotification .
В случае успеха тело ответа содержит данные следующей структуры:
| JSON-представление |
|---|
{ "responseHeader": { object ( |
| Поля | |
|---|---|
responseHeader | ОБЯЗАТЕЛЬНО : общий заголовок для всех ответов. |
result | ОБЯЗАТЕЛЬНО : Результат этого вызова. |
Захватрезультата
Информация об окончательном результате захвата.
| JSON-представление |
|---|
{ "captureResultCode": enum ( |
| Поля | |
|---|---|
captureResultCode | ОБЯЗАТЕЛЬНО : код результата этого захвата. |
rawResult | НЕОБЯЗАТЕЛЬНО : необработанный результат этого захвата. Используется для информирования системы рисков и аналитики Google. В ситуациях отказа от сопоставления кода данные иногда теряются. Интегратор может предоставить Google необработанный код. Например, шлюз кредитных карт (интегратор) может использовать это поле, чтобы сообщить Google точный код отклонения, полученный из сети VISA. В этом случае Это значение является обязательным , если |
Поле объединения | |
transactionMaxLimit | НЕОБЯЗАТЕЛЬНО : если Эта сумма представляет собой микротот того же |
transactionMinLimit | НЕОБЯЗАТЕЛЬНО : если Эта сумма представляет собой микротот того же |
currentBalance | НЕОБЯЗАТЕЛЬНО : если результат равен Это значение должно быть в той же валюте, что и |
Код CaptureResultCode
Коды результатов для захвата.
| Перечисления | |
|---|---|
UNKNOWN_RESULT | Никогда не устанавливайте это значение по умолчанию! |
SUCCESS | Захват успешен. |
CHARGE_UNDER_TRANSACTION_LIMIT | Запрошенная сумма сбора не соответствует минимальной сумме транзакции, установленной интегратором. Если этот код используется, заполните поле transactionMinLimit минимальной суммой транзакции для целей обмена сообщениями с пользователем. |
CHARGE_EXCEEDS_TRANSACTION_LIMIT | Запрошенная сумма сбора превышает максимальный лимит интегратора на одну транзакцию. Если используется этот код, заполните поле transactionMaxLimit лимитом транзакции для целей обмена сообщениями с пользователем. |
CHARGE_EXCEEDS_DAILY_LIMIT | Аккаунт пользователя в данный момент не может быть использован для покупок, так как превышен дневной лимит. |
CHARGE_EXCEEDS_MONTHLY_LIMIT | Аккаунт пользователя в данный момент не может быть использован для покупок, так как превышен месячный лимит. |
INSUFFICIENT_FUNDS | На этом счету недостаточно средств, чтобы гарантировать этот захват. |
SUSPECTED_FRAUD | У интегратора есть основания подозревать, что данная транзакция является мошеннической. |
ACCOUNT_CLOSED | Учетная запись пользователя у интегратора закрыта. Это возвращаемое значение приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент. |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER | Аккаунт пользователя у интегратора закрыт, подозрение на захват аккаунта. Это возвращаемое значение приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент. |
ACCOUNT_CLOSED_FRAUD | Аккаунт пользователя у интегратора закрыт из-за мошенничества. Это возвращаемое значение приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент. |
ACCOUNT_ON_HOLD | Аккаунт пользователя заблокирован. |
OTP_NOT_MATCHED | OTP не соответствовал тому, что отправил интегратор. |
OTP_ALREADY_USED | OTP уже использовался. |
CAPTURE_REQUEST_EXPIRED | Интегратору потребовалось слишком много времени, чтобы захватить средства пользователя. Google будет рассматривать это отклонение как окончательное состояние, поэтому интегратор должен гарантировать, что средства пользователя не будут захвачены позже или что пользователю будет автоматически возвращено возмещение, если захват окажется успешным. |
INVALID_PIN | Пользователь указал неверный PIN-код. |
OS_LOCK_FAILED | Для этого потока платежей требуется запрос на блокировку ОС, и пользователю не удалось разблокировать устройство. |
PIN_ENTRY_ATTEMPTS_EXHAUSTED | Этот поток платежей требует ввода PIN-кода пользователя. Пользователю не удалось ввести PIN-код столько раз, что у него закончились попытки. |
USER_EXITED_PAYMENT_FLOW | Пользователь отменил всю попытку оплаты (либо при блокировке ОС, либо на экране ввода PIN-кода). |
MONTHLY_FREQUENCY_LIMIT_EXCEEDED | В настоящее время учетную запись пользователя нельзя использовать для покупок, поскольку превышен ежемесячный лимит попыток транзакций. |
DECLINED_BY_ISSUER | Этот код отклонения никогда не следует использовать в установившемся режиме. Он предназначен для использования в качестве временного универсального кода, когда интегратор сталкивается с неизвестным кодом отклонения от основного эмитента пользовательского инструмента. Этот результирующий код может использоваться, пока интегратор определяет более подходящий для использования результирующий код или согласовывает добавление нового результирующего кода в данную спецификацию. Важно отметить, что этот код отклонения во многом является реальным снижением. С точки зрения Google, это постоянный спад. Если интегратор возвращает это, он должен отследить, что на самом деле означает код эмитента, и вернуть пользователю деньги, если окажется, что код действительно означает Если этот код отклонения используется для одного и того же основного кода отклонения более определенного количества дней, Google будет рассматривать его как ошибку и соответствующим образом отслеживать его с учетом любых договорных санкций, связанных с исправлением ошибок. |
RawResult
Необработанный объект результата.
| JSON-представление |
|---|
{ "scope": string, "rawCode": string } |
| Поля | |
|---|---|
scope | НЕОБЯЗАТЕЛЬНО : Область действия rawCode может быть пустой. |
rawCode | ОБЯЗАТЕЛЬНО : необработанный код интегратора или его подсистем. |
CaptureResultNotificationResultCode
Коды результатов для метода captureResultNotification .
| Перечисления | |
|---|---|
UNKNOWN_RESULT | Никогда не устанавливайте это значение по умолчанию! |
SUCCESS | Уведомление о результате захвата успешно обработано. |