Method: asynchronousCapture

Инициирует начало операции движения денег между счетом клиента и интегратором. Интегратор должен подтвердить запрос и выполнить все действия, необходимые для завершения захвата (например, получить PIN-код от пользователя). Интегратор проинформирует Google об окончательном результате захвата, вызвав API CaptureResultNotification.

Комбинация requestId в заголовке и paymentIntegratorAccountId является ключом идемпотентности и уникально идентифицирует эту транзакцию. Все изменения в этой транзакции (возвраты) заполняют значение requestId в поле captureRequestId .

Если конечная точка обнаруживает ошибку при обработке запроса, тело ответа от этой конечной точки должно иметь тип ErrorResponse .

Пример запроса выглядит так:


{
  "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"
}

Пример ответа выглядит так:


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

HTTP-запрос

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

Тело запроса

Тело запроса содержит данные следующей структуры:

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.
}
Поля
requestHeader

object ( RequestHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех запросов.

paymentIntegratorAccountId

string

ОБЯЗАТЕЛЬНО : это идентификатор учетной записи платежного интегратора, который определяет договорные ограничения, связанные с этой транзакцией.

transactionDescription

string

ОБЯЗАТЕЛЬНО : это описание транзакции, которое можно указать в выписке клиента. Локализовано для userLocale, найденного в requestHeader . Этот формат может быть изменен без предварительного уведомления, и его ни в коем случае нельзя анализировать.

currencyCode

string

ТРЕБУЕТСЯ : трехбуквенный код валюты ISO 4217.

amount

string ( Int64Value format)

ОБЯЗАТЕЛЬНО : Сумма покупки в микро валютной единице.

Поле объединения fopDetails .

fopDetails может быть только одним из следующих:

upiDetails

object ( UpiDetails )

НЕОБЯЗАТЕЛЬНО : платежные реквизиты, специфичные для инструментов UPI.

tokenizedInstrumentDetails

object ( TokenizedInstrumentDetails )

НЕОБЯЗАТЕЛЬНО : платежные реквизиты, относящиеся к токенизированным инструментам.

Тело ответа

Объект ответа для метода захвата.

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "result": enum (AsynchronousCaptureResultCode)
}
Поля
responseHeader

object ( ResponseHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех ответов.

paymentIntegratorTransactionId

string

ОБЯЗАТЕЛЬНО : этот идентификатор специфичен для интегратора и генерируется интегратором. Это идентификатор, по которому интегратор знает эту транзакцию.

Для удобства этот идентификатор включен в детали денежного перевода.

result

enum ( AsynchronousCaptureResultCode )

ОБЯЗАТЕЛЬНО : результат асинхронного вызова захвата.

UpiДетали

Подробная информация об учетной записи UPI, из которой осуществляется захват.

JSON-представление
{
  "vpa": string
}
Поля
vpa

string

ОБЯЗАТЕЛЬНО : виртуальный платежный адрес пользователя (VPA), используемый для перевода денег с использованием протокола UPI. Например , foo@icici .

Подробности о токенизированном инструменте

Подробная информация об учетной записи, с которой осуществляется захват.

JSON-представление
{
  "googlePaymentToken": string
}
Поля
googlePaymentToken

string

ОБЯЗАТЕЛЬНО : это токен, который обе компании будут использовать для идентификации учетной записи для покупок между собой.

Асинхронныйкаптурересулткоде

Коды результатов для asynchronousCapture.

Перечисления
UNKNOWN_RESULT Никогда не устанавливайте это значение по умолчанию!
ACKNOWLEDGED Запрос был запрошен, и интегратор выполнит дополнительные действия, чтобы определить, был ли захват успешным или отклоненным. Как только интегратор узнает результат захвата, он сообщит о нем Google, вызвав API captureResultNotification .
ACCOUNT_CLOSED

Учетная запись пользователя у интегратора закрыта.

Возврат этого значения приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент, повторно пройдя процедуру связывания.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Аккаунт пользователя у интегратора закрыт, подозрение на захват аккаунта.

Возврат этого значения приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент, повторно пройдя процедуру связывания.

ACCOUNT_ON_HOLD Счет заблокирован.
ACCOUNT_CLOSED_FRAUD

Аккаунт пользователя у интегратора закрыт из-за мошенничества.

Возврат этого значения приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент, повторно пройдя процедуру связывания.