Оплаты по платёжным ссылкам
Помимо этой статьи для работы с оплатами по платёжным ссылкам могут быть полезны:
- статья Оплата по платёжной ссылке модели проведения платежей с описанием того, как в целом проводятся оплаты по платёжным ссылкам в платёжной платформе ecommpay, какие операции при этом используются и как меняются статусы этих платежей и операций;
- описание того, как проводить оплаты по платёжным ссылкам через Dashboard;
- статьи раздела Платёжные методы с описанием того, как проводятся оплаты с использованием платёжной формы Payment Page в контексте пользовательских сценариев и общих схем взаимодействия.
Общая информация
Оплата по платёжной ссылке — это тип платежа, в рамках которого на основании одного исходного запроса осуществляется создание и отправка платёжной ссылки, а затем один (разовый) перевод денежных средств от пользователя к мерчанту. Платёжная платформа ecommpay поддерживает следующие варианты таких оплат:
- оплата по платёжной ссылке в одну стадию,
- оплата по платёжной ссылке в две стадии.
Оба варианта поддерживают возможность зарегистрировать дальнейшие списания в рамках повторяемой оплаты любого вида и проводятся с использованием платёжной формы Payment Page, ссылка для открытия которой отправляется на электронную почту пользователя через платформу ecommpay или любым другим способом со стороны мерчанта.
Дата и время окончания срока действия ссылки и вариант проведения платежа определяются на стороне мерчанта и указываются в параметрах запроса на его инициирование, при этом срок действия ссылки не может превышать 30 суток (с момента формирования ссылки в платформе и до момента получения в платформе запроса на инициирование платежа) и по его истечении от платформы отправляется соответствующее оповещение. Также в параметрах такого запроса можно указать платёжный метод, с использованием которого необходимо провести платёж, или предоставить пользователю возможность выбора из всех методов, подключенных для проекта мерчанта.
Так как оплаты по платёжной ссылке проводятся с использованием платёжной формы Payment Page, в параметрах запросов на инициирование таких оплат реквизиты платёжного инструмента либо не указываются, либо указываются в форме токена карты. В последнем случае пользователю понадобится только подтвердить подлинность платёжного инструмента, без указания его реквизитов в платёжной форме.
Как и при проведении других типов платежей, в процессе проведения оплаты по платёжной ссылке может потребоваться выполнить вспомогательные процедуры, такие как аутентификация с использованием технологии 3‑D Secure, дополнение информации о платеже и конвертация валют. Эти процедуры полностью выполняются на стороне Payment Page, дополнительных действий со стороны веб-сервиса мерчанта при этом не требуется.
Сценарии использования
Допустим, пользователь веб-сервиса оформил заказ на сумму 12.99 GBP
и выбрал возможность оплаты по платёжной ссылке, указав для получения ссылки свой адрес электронной почты — baskerville@mail.uk
.
Успешная оплата
- Со стороны веб-сервиса мерчанта к платёжной платформе отправляется запрос с параметрами, необходимыми для отправки платёжной ссылки пользователю средствами ecommpay.
- Платёжная платформа обрабатывает такой запрос, направляет оповещение к веб-сервису мерчанта и отправляет на указанный в запросе адрес электронной почты письмо, стандартные вид и содержание которого представлены в примере далее. Стандартный язык письма — английский.
- Пользователь переходит по ссылке, после чего ему отображается Payment Page. Если в запросе на инициирование платежа не указан платёжный метод, то пользователю отображается страница выбора платёжного метода, а если платёжный метод указан — страница указанного платёжного метода.
- Пользователь указывает платёжные данные и подтверждает оплату, а также, при необходимости, осуществляет дополнительные действия, требуемые для выполнения одной или нескольких вспомогательных процедур.
- По результатам проведения платежа к веб-сервису направляется оповещение о результате, а пользователю отображается страница результата оплаты.
Отмена платежа
- Со стороны веб-сервиса мерчанта к платёжной платформе отправляется запрос на отмену платежа.
- Платёжная платформа обрабатывает такой запрос, направляет оповещение к веб-сервису мерчанта и отправляет на ранее указанный адрес электронной почты письмо, стандартные вид и содержание которого представлены в примере далее. Стандартный язык письма — английский.
- Если пользователь переходит по платёжной ссылке, ему отображается страница с уведомлением об отмене платежа.
Истечение срока действия платёжной ссылки
- К веб-сервису мерчанта направляется оповещение об истечении срока действия платёжной ссылки.
- Если пользователь переходит по платёжной ссылке, ему отображается страница с уведомлением об истечении срока действия платёжной ссылки.
Детальные сведения о том, что необходимо делать со стороны мерчанта для проведения платежа, представлены далее.
Настройка
Содержание и оформление писем
По умолчанию для составления писем, отправляемых на электронную почту пользователя, используются следующие данные из запроса на создание платёжной ссылки:
- идентификатор платежа (
payment_id
); - сумма (
amount
) и валюта (currency
) платежа; - дата и время окончания срока действия платёжной ссылки (
best_before
); - описание платежа (
description
).
По желанию мерчанта можно изменить состав данных, которые необходимо передавать в составе письма, или предоставить собственную вёрстку письма.
По всем вопросам, связанным с изменением содержания и оформления писем, следует обращаться к специалистам технической поддержки — support@ecommpay.com.
Оформление платёжной формы
По умолчанию пользователю отображается платёжная форма с типовым вариантом оформления от ecommpay. По желанию мерчант может настроить собственный вариант оформления, применив различные изменения к отдельным элементам платёжной формы с помощью соответствующего конструктора. С вопросами, выходящими за рамки возможностей конструктора, можно обращаться к курирующему менеджеру.
Схема проведения
Для проведения оплаты по платёжной ссылке через Gate необходимо:
- Отправить запрос на оплату по платёжной ссылке к конечной точке
/v2/payment/invoice[/card/token]/create
. - Принять оповещение о создании платёжной ссылки.
- Принять оповещение о результате оплаты или оповещение об истечении срока действия ссылки.
Для проведения оплаты по платёжной ссылке в две стадии дополнительно требуется выполнить вторую стадию такой оплаты: подтверждение списания заблокированных средств или отмену блокировки. Подробная информация о выполнении второй стадии оплаты в две стадии представлена в разделе Оплата в две стадии.
Схема проведения оплаты по платёжной ссылке представлена далее.
Для отмены такой оплаты до её подтверждения пользователем необходимо:
- Отправить запрос на отмену платежа к конечной точке
/v2/payment/invoice/cancel
. - Принять оповещение об отмене платежа.
Далее приведена информация о форматах запросов и параметрах инициирования оплаты по платёжной ссылке и её отмены, а также о форматах оповещений, используемых при проведении платежа. Информацию о возможных статусах такой оплаты можно найти в соответствующей статье.
Форматы запросов
Формат запроса на проведение платежа
При формировании запросов необходимо учитывать следующее:
- Должен использоваться POST-запрос к одной из следующих конечных точек: /v2/payment/invoice/create или /v2/payment/invoice/card/token/create.
- В запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;payment_id
— идентификатор платежа, уникальный в рамках проекта;signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью);
customer
— объект, содержащий сведения о пользователе:id
— идентификатор пользователя в веб-сервисе мерчанта;
payment
— объект, содержащий сведения о платеже:amount
— сумма платежа в дробных единицах валюты;currency
— валюта платежа в формате ISO-4217 alpha-3;best_before
— дата и время окончания срока действия платёжной ссылки в форматеYYYY-MM-DDThh:mm:ss±hh:mm
; необходимо указывать таким образом, чтобы срок действия ссылки не превышал 30 суток.
- При передаче токена — токен карты в параметре
token
. - Для отправки платёжной ссылки средствами ecommpay:
email
— адрес электронной почты пользователя, содержится в объектеcustomer
;send_email
— индикатор автоматической отправки платёжной ссылки, для отправки необходимо передать значениеtrue
;language
— код языка, содержится в объектеcustomer
; необходимо передавать в случае, если язык пользователя отличается от английского и для этого языка настроена вёрстка письма.
- Для предварительного выбора платёжного метода — код этого метода в параметре
force_method
(список таких кодов — в разделе Коды платёжных методов). - Для регистрации дальнейших списаний в рамках повторяемой оплаты — объект
recurring
, содержащий обязательные параметры с информацией о регистрируемой оплате:register
— признак регистрации повторяемой оплаты, необходимо использовать значениеtrue
;type
— категория регистрируемой повторяемой оплаты, необходимо использовать одно из следующих значений:C
— для экспресс-оплаты,U
— для автооплаты,R
— для регулярной оплаты;
time
— время последующих списаний (для регулярной оплаты) в форматеhh:mm:ss
;period
— периодичность списаний (для регулярной оплаты):D
— ежедневно,W
— еженедельно,M
— ежемесячно,Q
— ежеквартально,Y
— ежегодно.
Также могут использоваться и любые другие параметры в объекте
recurring
, указанные в спецификации. - Дополнительно могут использоваться любые другие параметры, указанные в спецификации.
Таким образом, корректный запрос на оплату по платёжной ссылке должен содержать идентификаторы проекта и платежа, подпись, идентификатор пользователя, валюту и сумму платежа, дату и время окончания срока действия платёжной ссылки и, при необходимости, токен платёжной карты. Дополнительно, если платёжную ссылку необходимо отправить средствами ecommpay, запрос должен содержать адрес электронной почты пользователя и индикатор автоматической отправки платёжной ссылки.
{ "general": { "project_id": 1901, "payment_id": "456789", "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm==" }, "customer": { "id": "stapleton", "email": "baskerville@mail.uk" }, "payment": { "amount": 1500, "currency": "GBP", "best_before": "2023-03-08T09:00:00+03:00" }, "send_email": true, // при передаче ранее созданного токена платёжной карты: "token": "f365bb1729f9b72fd9c097becc679f29c3e35c91d18070d15654" }
Формат запроса на отмену платежа
При формировании запросов необходимо учитывать следующее:
- Должен использоваться POST-запрос к конечной точке /v2/payment/invoice/cancel.
- В запросе должен использоваться объект
general
, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;payment_id
— идентификатор того платежа, который необходимо отменить;signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью);
- Дополнительно могут использоваться любые другие параметры, указанные в спецификации.
Таким образом, корректный запрос на отмену платежа должен содержать идентификаторы проекта и платежа, а также подпись.
{ "general": { "project_id": 1901, "payment_id": "456789", "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm==" } }
Форматы оповещений
Формат оповещения о создании платёжной ссылки
Для оповещения об отправке платёжной ссылки пользователю используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере содержится информация о том, что пользователю stapleton
на адрес электронной почты baskerville@mail.uk
отправлена платёжная ссылка для оплаты заказа в размере 12,99 GBP
. Срок действия ссылки истекает 11 октября 2020 года, в 11:50.
Формат оповещения об отмене платежа
Для оповещения об отмене платежа по инициативе мерчанта используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере содержится информация о том, что платёж 456789
отменён, статус платежа — invoice canceled
.
Формат оповещения об истечении срока действия платёжной ссылки
Для оповещения об истечении срока действия платёжной ссылки используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере содержится информация о том, что срок действия платёжной ссылки, отправленной пользователю stapleton
на адрес электронной почты baskerville@mail.uk
, истёк 11 февраля 2020 года, в 11:50.
Формат оповещения о результате платежа
Для оповещения о результате оплаты по платёжной ссылке используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере содержится информация о том, что для пользователя stapleton
проведена оплата в размере 12,99 GBP
.