Открытие в виде отдельной HTML-страницы
Общая информация
При открытии в виде отдельной HTML-страницы платёжная форма Payment Page отображается в отдельной вкладке браузера. С учётом того, как настроена работа браузера, это может быть уже использовавшаяся для веб-сервиса или новая вкладка, но в любом из этих случаев взаимодействие пользователя с веб-сервисом прерывается и он перенаправляется к другой странице, которая фокусирует его на оплате. При этом по завершении оплаты пользователь может быть снова перенаправлен от платёжной формы к веб-сервису (подробнее).
Чтобы открывать платёжную форму таким способом, на стороне веб-сервиса следует:
- Определить события, при наступлении которых должна открываться платёжная форма (например, переход по кнопке оплаты).
- Обеспечить вызов платёжной формы по требуемым событиям, с использованием собственных решений или JavaScript-библиотеки от ecommpay, расположенной по адресу
https://paymentpage.ecommpay.com/shared/merchant.js
. Помимо прочего, эта библиотека позволяет использовать автоматическое открытие Payment Page в виде отдельной страницы на мобильных устройствах и открытие одним из других способов на других устройствах.
Вызов с использованием собственных решений
Для открытия Payment Page в виде отдельной HTML-страницы достаточно перенаправить пользователя по ссылке следующего формата:
Для открытия Payment Page в виде отдельной HTML-страницы достаточно перенаправить пользователя по ссылке заданного формата, с указанием строки данных (<parameters>
), включающей в себя пары названий и значений параметров (в том числе подписи) со знаком &
в качестве разделителя.
https://paymentpage.ecommpay.com/payment?<parameters>
В этой ссылке <parameters>
представляет собой строку данных в виде пар названий и значений параметров (в том числе подписи) со знаком &
в качестве разделителя. Информация о применяемых параметрах и их подписывании представлена в отдельных статьях: Параметры вызова платёжной формы и Работа с подписью к данным.
Рис.: Пример ссылки для перенаправления пользователя к Payment Page
https://paymentpage.ecommpay.com/payment?project_id=42&customer_id=123&payment_id=4438&payment_amount=1000&payment_currency=EUR&signature=AE5hmtzdP0Dt7qGTg...
Вызов с использованием JavaScript-библиотеки ecommpay
Предоставляемая ecommpay JavaScript-библиотека, прежде всего, призвана упрощать открытие платёжной формы в модальном окне и в элементе iframe. Вместе с тем, она может использоваться и для открытия формы в виде отдельной HTML-страницы. Например, это может быть актуально для открытия формы в виде отдельной страницы на мобильных устройствах и в модальном окне на любых других.
Для открытия Payment Page в виде отдельной страницы с использованием JavaScript-библиотеки merchant.js
от ecommpay необходимо подключить эту библиотеку в клиентской части веб-сервиса и использовать соответствующие обращения к объекту EPayWidget
. Кроме того, если планируется использовать JavaScript-библиотеку merchant.js
и для других способов открытия Payment Page, следует подключить также CSS-библиотеку, расположенную по адресу https://paymentpage.ecommpay.com/shared/merchant.css
.
При обращениях к объекту EPayWidget
в объекте configObj
должен указываться один из следующих параметров:
redirect_on_mobile
со значениемtrue
— для открытия платёжной формы в виде отдельной HTML-страницы только на мобильных устройствах;redirect
со значениемtrue
— для открытия платёжной формы в виде отдельной HTML-страницы на всех устройствах.
Если эти параметры не указываются или неприменимы для используемого устройства, платёжная форма открывается иным способом: в модальном окне или в элементе iframe (если это задано через соответствующий параметр target_element
).
В остальном работа с объектом EPayWidget
для открытия Payment Page в отдельной вкладке соответствует общим условиям, актуальным и для других способов открытия:
Для открытия Payment Page в виде отдельной HTML-страницы с использованием JavaScript-библиотеки merchant.js
от ecommpay необходимо подключить эту библиотеку и использовать соответствующие обращения к объекту EPayWidget
. В этих обращениях среди параметров вызова в объекте configObj
должен указываться один из следующих параметров:
redirect
со значениемtrue
— для открытия в отдельной вкладке на всех устройствах;redirect_on_mobile
со значениемtrue
— для открытия в отдельной вкладке только на мобильных устройствах.
В остальном должны соблюдаться следующие общие условия:
- Каждое обращение может осуществляться одним из двух методов:
bind
(EPayWidget.bind
) — если платёжную форму необходимо открывать по щелчку кнопки (с указанием её идентификатора,<pay_button_id>
);run
(EPayWidget.run
) — если платёжную форму необходимо открывать по какому-либо другому событию в пользовательском интерфейсе.
- В каждом обращении должен указываться JavaScript-объект
configObj
с параметрами вызова платёжной формы и с подписью к ним с параметрами вызова платёжной формы и с подписью к ним.Информация о применяемых параметрах и их подписывании представлена в отдельных статьях: Параметры вызова платёжной формы и Работа с подписью к данным.
- При необходимости в любом обращении может также указываться HTTP-метод отправки запроса (
method
) — POST или GET. Если он не указывается, по умолчанию применяется метод GET. - Дополнительно в любом обращении могут указываться функции-обработчики для сбора информации о действиях пользователя (подробнее).
Информация о таких функциях представлена в статье Получение и обработка информации о действиях с платёжной формой.
Рис.: Сигнатура методов bind и run
EPayWidget.bind('<pay_button_id>', configObj, method);
EPayWidget.run(configObj, method);
Рис.: Пример обращения с использованием метода bind
EPayWidget.bind('pay_button_id', // Идентификатор кнопки { project_id: 42, // Идентификатор проекта customer_id: '17008', // Идентификатор пользователя payment_id: '18641868', // Идентификатор платежа payment_amount: 8855, // Сумма платежа payment_currency: 'USD', // Код валюты платежа redirect_on_mobile: true, // Указатель открытия в виде отдельной HTML-страницы // на мобильных устройствах signature: 'YWb6Z20ByxpQ30hfTI' }, // Подпись 'post')
Рис.: Пример обращения с использованием метода run
EPayWidget.run( { project_id: 42, // Идентификатор проекта customer_id: '17008', // Идентификатор пользователя payment_id: '18641868', // Идентификатор платежа payment_amount: 8855, // Сумма платежа payment_currency: 'USD', // Код валюты платежа redirect_on_mobile: true, // Указатель открытия в виде отдельной HTML-страницы // на мобильных устройствах signature: 'YWb6Z20ByxpQ30hfTI' }, // Подпись 'post')
HTML-код страницы веб-сервиса при этом может выглядеть следующим образом.
<html> <head> <!-- Adding ecommpay libraries --> <link rel="stylesheet" href="https://paymentpage.ecommpay.com/shared/merchant.css"> <script src="https://paymentpage.ecommpay.com/shared/merchant.js"></script> <script type="text/javascript">var EP_HOST = 'https://paymentpage.ecommpay.com';</script> <!-- Other parts --> </head> <body> <!-- JS command to open Payment Page --> <script type="text/javascript"> EPayWidget.run({ project_id: 42, customer_id: '17008', payment_id: '18641868', payment_amount: 8855, payment_currency: 'USD', redirect_on_mobile: true, signature: 'YWb6Z20ByxpQ30hfTI' }); </script> <!-- Other parts --> </body> </html>