Оплаты с использованием 3D Secure реализуются в три этапа: инициация, проверка и завершение. В запросе на инициацию Odero API предоставляется URL обратного вызова, по которому может быть передан статус 3D Secure; с использованием этого URL участник бизнеса в своих рабочих процессах указывает ID оплаты и отправляет запрос на завершение оплаты, обеспечивая завершение процесса от начала до конца.
Информация о конечной точке и методе HTTP, используемых для запуска 3D Secure платежа, предоставлена ниже:
HTTP Method | URL |
---|---|
POST |
/payment/v1/card-payments |
В отличие от других платежей, при реализации оплат с использованием 3D Secure обязательно отправление параметра callbackUrl. В этом контексте обязательными параметрами для начала 3D Secure оплаты являются следующие:
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
conversationId |
string |
Нет | Значение "boomerang", которое можно отправить в запросе и принять в ответе. Используется для связывания различных запросов между собой. Обычно используется номер заказа, связанный с платежами бизнес-участника. |
price |
decimal |
Да | Общая сумма платежа. Должна быть равна сумме продуктов/услуг в корзине. |
paidPrice |
decimal |
Да | Общая сумма, которую клиент должен заплатить, рассчитывается с учетом комиссий и скидок. В случае частичного или полного платежа из кошелька, сумма, взимаемая с кошелька, также включена в эту сумму. |
walletPrice |
decimal |
Нет | Сумма, удерживаемая из кошелька покупателя, указанная в параметре buyerId . Обязательно при частичном или полном удержании средств из кошелька. В случае полного удержания средств с карты или отсутствия buyerId может быть отправлена как 0 . (По умолчанию: 0 ) |
installment |
integer |
Да | Количество месячных выплат по платежу. Может быть отправлено как 1 для единовременного платежа. Возможные значения: 1 , 2 , 3 , 6 , 9 и 12 . |
buyerId |
long |
Нет | ID покупателя, связанный с платежом. Этот идентификатор принадлежит системам Odero, а не ID значению в системах участника бизнеса. |
currency |
Currency |
Да | см.: Валюты Валюта, в которой принимается платеж |
paymentGroup |
PaymentGroup |
Да | см.: Группы Платежей |
callbackUrl |
string |
Да* | Адрес, который будет использован для доставки результата от банка в систему торговца при проведении платежа с использованием 3D Secure (см. 3D Secure Получение Платежа) |
card |
Card |
Нет | (см. Информация о Карте) Информация о карте, для которой будет проведено удержание. Не обязательно для полного удержания из кошелька (т.е. когда paidPrice равен walletPrice ) |
posAlias |
string |
Нет | Используется для операций TOKENGATE. Если заполнено, платеж будет проведен через этот POS. см.: Операции Шлюза |
items |
PaymentItem[] |
Да | (см.: Информация о Платеже) Информация о разделении платежа. Должно быть отправлено как минимум одно разделение, и сумма всех отправленных разделений должна быть равна значению price . |
*: В обычных условиях это поле необязательное, но оно выделено как обязательное для платежей, совершаемых через страницу Общего платежа
Параметры, возвращаемые в результате процесса оплаты с использованием 3D Secure, подчиняются правилам, указанным в разделе Форматы Возврата на основной странице документации API. При отсутствии систематической или структурной ошибки параметры возвращаемые в data
, следующие:
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
htmlContent |
string |
Да | Структура HTML-кода формы 3D Secure, которая будет представлена пользователю. Это значение отправляется в кодировке Base64 и должно быть декодировано системой торговца перед отображением |
Процесс 3D Secure-оплаты, начинающийся с запроса на инициирование платежа, отправленного торговцем, продолжается с проверки пользователя. Для этого HTML-структура, содержащаяся в ответе на запрос на инициирование, должна быть декодирована и показана пользователю.
После того как пользователь вводит полученный им код подтверждения, результат проверки передается в API Odero соответствующим банком. API Odero отправляет запрос на обратный адрес callbackUrl
, предоставленный торговцем при запросе на проведение оплаты, сохраняя при этом полученный результат вместе с некоторой информацией о платеже.
Следующие параметры передаются в виде переменных формы с использованием HTTP POST метода. Параметры, содержащиеся в запросе, который будет отправлен Odero на callbackUrl
после подтверждения, будут следующими:
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
status |
string |
Да | Значение, выражающее статус проверки 3D Secure. Если проверка прошла успешно, будет получено значение SUCCESS , в противном случае — FAILURE |
conversationId |
string |
Нет | Значение параметра conversationId , отправленного в запросе на запуск оплаты |
paymentId |
long |
Нет | Отправляется в случае успешной проверки. Это идентификатор, созданный API Odero, связанный с платежом |
После отправки торговцу результата Odero через запрос на callbackUrl
для успешных платежей, бизнес-партнер должен завершить процесс, отправив запрос на завершение к API Odero. Этот запрос должен быть отправлен в течение времени ожидания (В зависимости от банка издателя карты). Если запрос на завершение не отправлен или не будет подтвержден после успешного вызова callbackUrl
, транзакция не будет завершена. Если это не произойдет или если невозможно перейти на callbackUrl
после подтверждения, транзакция останется в ожидании и будет отображаться желтым цветом на панели торговца.
Информация о конечной точке и методе HTTP, используемых для завершения 3D Secure платежа, предоставлена ниже:
HTTP Metod | URL |
---|---|
POST |
/payment/v1/card-payments/3ds-complete |
Параметры запроса на завершение для платежей, прошедших этап проверки, следующие:
Название параметра | Тип | Обязательный | Описание |
---|---|---|---|
paymentId |
long |
Да | ID платежа, созданного API Odero и переданного в callbackUrl в связи с платежом. |
Ответ на запрос о завершении платежей, совершенных с использованием 3D Secure, аналогичен стандартному платежу и содержит детали, связанные с платежом. Для формата ответа и параметров, которые он содержит, обратитесь к: Параметры Приема Платежа - Ответ