Москва: 8 (495) 984-87-51
Санкт-Петербург: 8 (812) 385-75-57
8 (800) 775-37-51Контакт центр

HTML-форма

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

HTML-форма  

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

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

  • сделать собственный дизайн формы оплаты;
  • передавать в 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 стилей форме можно придать любое необходимое оформление. К форме, отображенной выше, применены следующие стили:

Проверка цифровой подписи запроса

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

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

Страница ввода реквизитов карты на стороне банка может отображаться на разных языках. Для его изменения в параметре 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 массив товаров.