HTML-форма

Вставка формы на сайт

Один из основных методов интеграции платежной платформы PayKeeper с сайтом — это вставка обычной HTML формы. При этом можно использовать собственную верстку, CSS стили и элементы оформления, что позволяет достичь значительной гибкости создаваемой формы при сохранении простоты интеграции.

Данный метод будет в первую очередь полезен, если нужно:

  • сделать собственный дизайн формы оплаты;
  • передавать в PayKeeper дополнительную информацию о платеже;
  • собственная сложная логика инициализации оплаты;
  • провести интеграцию с сайтом, который не использует стандартную CMS систему;

Ваша форма оплаты на сайте должна иметь метод POST и action, указывающий на URL /create/ вашего сервера PayKeeper (пример: https://example.server.paykeeper.ru/create/). Форма может передавать следующие поля (используемая кодировка — UTF-8):

  Параметр Назначение Обязательный
1 sum Сумма к оплате Да
2 clientid Идентификатор клиента Нет
3 orderid Номер заказа Нет
4 service_name Название услуги Нет
5 client_email Адрес электронной почты Нет
6 client_phone Телефон плательщика Нет
7 pstype Тип платёжной системы Нет
8 sign Цифровая подпись запроса Нет
9 lang Язык оповещений и шлюза банка Нет
10 user_result_callback Адрес перенаправления Нет
11 cart Корзина в JSON для чека 54-ФЗ Нет

Ниже приведён пример HTML-кода простой формы оплаты:

Вы можете вставить данный HTML-код на любую страницу вашего сайта. Отображаться он будет следующим образом:

Введите сумму оплаты:
Введите номер заказа:
Введите название услуги:

 
Приведенный пример формы функционален. Форма настроена для работы с нашим демо шлюзом. Чтобы переключить форму на ваш сервер, нужно указать вместо https://demo.paykeeper.ru  адрес вашего сервера. Обычно он имеет вид https://example.server.paykeeper.ru 

Если возникают проблемы с передачей русских символов, то потребуется добавить в заголовок формы параметр accept-charset="utf-8"

С помощью CSS стилей форме можно придать любое необходимое оформление. К форме, отображенной выше, применены следующие стили:

Генератор формы для оплаты

При необходимости вы можете воспользоваться нашим генератором форм для оплаты: https://widgets.paykeeper.ru/form/

Составление цифровой подписи запроса

По умолчанию, paykeeper не проверяет цифровую подпись запроса. Если данная проверка необходима, её включение происходит отдельно.

Цифровая подпись представляет собой SHA-256 хэш от конкатенации параметров запроса 1-6 (если параметра нет, то он подставляется как пустая строка) и секретного слова. Результат хэширования записывается в виде строки из шестнадцатеричных цифр. Секретное слово задаётся в настройках в личном кабинете PayKeeper, в разделе «Получение информации о платежах», при выборе способа получения уведомлений «POST-оповещения».

Пример кода на PHP для составления цифровой подписи запроса:

Язык оповещений и шлюза банка

Страница ввода реквизитов карты на стороне банка может отображаться на разных языках. Для его изменения в параметре lang  передаётся двубуквенный код требуемого языка. Например, en для английского языка. Клиент также получит оповещение об оплате от PayKeeper на выбранном языке.

Не все банки поддерживают отображение страницы на нескольких языках. Тестовый шлюз PayKeeper не поддерживает другие языки, кроме русского.

Адрес перенаправления

После завершения операции оплаты пользователь возвращается на служебные страницы PayKeeper ( https://<ваш сервер PayKeeper>/fail/ и https://<ваш сервер PayKeeper>/success/). Они отображают сообщение о результате операции, и, если оплата не удалась, описание возможных причин неудачи. С этих страниц пользователь переходит по ссылке обратно на сайт организации. По умолчанию, возврат происходит на главную страницу.

Раздел «Адреса перенаправления клиента» настроек личного кабинета PayKeeper позволяет изменить адреса перенаправления по умолчанию и установить флаг пропуска служебных страниц возврата.

В параметре user_result_callback  можно задать уникальный адрес перенаправления после оплаты для каждого плательщика. К этому адресу будут добавлены GET-параметры ?payment_id=...&clientid=...&result=success|fail 

Чеки 54-ФЗ 

При включённой фискализации чек будет напечатан в любом случае. Если параметр cart  не передан, то в чеке будет указана только одна товарная позиция с шаблонным названием (оно может быть кастомизировано). Если требуется, чтобы чек содержал детальный перечень товаров или услуг, нужно передать в параметре cart  закодированный в JSON массив товаров. Например: