Платежный виджет
Виджет позволяет принимать платежи на Вашем сайте без перенаправления клиента на отдельную платежную страницу. Клиент выбирает метод оплаты и подтверждает оплату в виджете.
Примеры:
Пример виджета встроенного в страницу
Описание
Для создания платежного виджета на странице необходимо вызвать метод init объекта PMWidget. После завершения инициализации виджета происходит вызов функции переданной в методе on с параметром ready. Перед приемом платежа вызывается "предварительный запрос". После совершения платежа вызывается одна из объявленных с помощью метода метода on функций (success, fail, close, error). Заказ считается успешно оплаченным только после получения "оповещения о платеже".
<div id="divId"></div>
<script type="text/javascript">
window.PMWidgetCallback = function() {
PMWidget.init({
embedTarget: '#divId',
mode: 'embed',
params: {
"LMI_MERCHANT_ID":"1412",
"LMI_PAYMENT_NO":"o-2193987",
"LMI_PAYMENT_AMOUNT":"10.99",
"LMI_PAYMENT_DESC":"Order description"
},
language: 'ru'
})
.on('ready', function() {
console.log('READY');
})
.on('success', function() {
console.log('SUCCESS');
})
.on('fail', function(params) {
console.log('FAIL ' + params.message);
})
.on('close', function() {
console.log('CLOSE');
})
.on('error', function() {
console.log('ERROR');
})
;
};
</script>
<script type="text/javascript" src="https://lmi.paysoft.solutions/js/widget/initScript.js" async></script>
Параметры метода init
Название | Название параметра | Обязательный? | Описание |
---|---|---|---|
Режим отображения | mode | Да | embed - виджета встроен в страницу, popup - всплывающий виджет |
Язык виджета | language | Нет | ru – русский язык uk – украинский язык en – английский язык |
HTML элемент вставки | embedTarget | Нет | Только для mode=embed. Селектор HTML элемента в который будет встроен виджет. |
Параметры заказа | params | да | Массив параметров |
Идентификатор продавца | LMI_MERCHANT_ID | Да | Идентификатор магазина. Идентификатор Продавец может получить в Кабинете(https://merchant.paysoft.solutions). |
Сумма платежа | LMI_PAYMENT_AMOUNT | Да | Сумма платежа, которую Продавец желает получить от Клиента. Сумма должна быть больше нуля, дробная часть отделяется точкой. |
Внутренний номер заказа в системе учета Продавца | LMI_PAYMENT_NO | Нет | В этом поле Продавец определяет номер заказа в соответствии со своей системой учета. Несмотря на то, что параметр не является обязательным, рекомендуется всегда задавать его, поскольку он нужен для корректной работы других интерфейсов. Желательно использовать уникальный номер для каждого платежа. Номер может содержать буквы английского алфавита, цифры и знак дефиса «-». Максимальная длина - 64 символов. |
Назначение платежа | LMI_PAYMENT_DESC | Да* | Описание товара или услуги. Формируется на стороне продавца. Если присутствует, добавляется в назначение платежа транзакции PaySoft. Максимальная длина - 255 символов, кодировка UTF-8. |
Назначение платежа | LMI_PAYMENT_DESC_BASE64 | Да* | Описание товара или услуги в UTF-8 с последующим кодированием с помощью алгоритма Base64. Формируется на стороне продавца. Если присутствует, то результат декодирования будет подставлен вместо LMI_PAYMENT_DESC. Позволяет не зависеть от кодирования на сайте Продавца. |
Срок оплаты заказа | LMI_EXPIRES | Нет | Срок, в течение которого заказ может быть оплачен. Передается в формате YYYY-MM-DD hh:mm:ss. Если параметр пустой, время оплаты является неограниченным. |
Идентификатор платежного инструмента | LMI_PAYMENT_SYSTEM | Нет | Идентификатор платежного инструмента, который Клиент выбрал для оплаты при формировании заказа на сайте продавца. Посмотреть перечень платежных инструментов можно в Кабинете. |
Признак тестового режима | LMI_SIM_MODE | Нет | Указывает, как проводить транзакцию после оплаты: 0 - всегда успешно, 1 - всегда неуспешно (возврат средств клиенту), 2 - вариативно (80% успешно, 20% не успешно) |
Номер телефона Клиента | LMI_PAYER_PHONE_NUMBER | Нет** | Номер телефона Клиента в формате 380xxxxxxxxx. |
Электронный адрес Клиента | LMI_PAYER_EMAIL | Нет** | Электронный адреса Клиента |
Идентификатор клиента на стороне Продавца | LMI_PAYER_ID | Нет | Может содержать буквы английского алфавита, цифры и знак дефиса «-». Максимальная длина 25 символов. |
Сохранение реквизитов карты | LMI_CREATE_TOKEN | Нет | Флаг, принимает значение 0 или 1. Если равен 1, то после успешной оплаты реквизиты карты, будут сохранены и возвращен параметр LMI_PAYMENT_TOKEN. См Списание по сохраненной карте |
Оплата по сохраненном токену карты | LMI_PAYMENT_TOKEN | Нет | Передается уже сохраненый токен карты. Оплата будет производится с подтверждением CVV и 3DSecure |
Контрольная подпись | LMI_HASH | Нет | Контрольная подпись запроса. Если в Кабинете Продавца установлены соответствующие настройки «Включить проверку подписи формы запроса платежа», эта подпись будет использоваться для проверки целостности полученной информации и однозначной идентификации отправителя. Подпись является результатом шифрования строки, полученной путем склеивания (без разделителей) значений следующих параметров точно в указанном порядке: LMI_MERCHANT_ID LMI_PAYMENT_NO LMI_PAYMENT_AMOUNT secretKey Алгоритм шифрования и Secret Key устанавливаются Продавцом в настройках его Кабинета, и известен только продавцу и системе PaySoft. Рекомендуемый алгоритм шифрования есть SHA256. |
Дополнительные параметры | Определяются Продавцом | Нет | Все поля формы, не имеющие в названии префикса "LMI_", принимаются сервисом PaySoft Merchant Interface и передаются (транслируются) без изменений на веб-сайт Продавца во всех других html-формах PaySoft Merchant Interface. |
* - Лишь один из параметров LMI_PAYMENT_DESC или LMI_PAYMENT_DESC_BASE64 обязательно должен присутствовать!
** - Обязательность поля определяется настройками в Кабинете продавца.
Параметры метода on
Название | Обязательный? | Описание |
---|---|---|
Событие | Да | ready - при инициализации виджета, success - при успешной оплате, fail - при неуспешной оплате, close - при закрытии виджета (только для mode=popup), error - при ошибке |
Функция | Да | Пользовательская функция, вызываемая при наступлении события |