Порядок настройки систем оплат индивидуальный для каждой системы. Настройки полученные от системы следует указывать в файле системных настроек /config/sys.php. Если какой-то из них нет в файле, просто добавьте ее по аналогии с уже имеющимися.
Начиная с версии 2.4.3 настройки систем оплат доступны в разделе «Настройки сайта / Системные настройки / Счета / (Вкладка с названием системы оплаты)», а настройки доступных способов оплаты в разделе «Счета / Способы оплаты».
1. Robokassa
- В первую очередь необходимо создать аккаунт в системе Robokassa.
- После этого в кабинете клиента, в разделе «Технические настройки», заполнить следующие поля:
- Пароль #1 — любой
- Пароль #2 — любой
- Result Url — http://example.com/bill/process/robox
- Success Url — http://example.com/bill/success
- Fail Url — http://example.com/bill/fail
- Метод отсылки данных во всех случаях — GET или POST
- Алгоритм рачета хеша — MD5
- В указанных выше примерах также необходимо заменить ’example.com’ на ваш домен.
- Заполнить соответствующие системные настройки:
—bills.robox.test
— true / false (тестовый режим используйте для тестирования приема платежей)
—bills.robox.login
— логин вашего аккаунта Robokassa
—bills.robox.pass1
— Пароль #1 (указанный вами в кабинете клиента)
—bills.robox.pass2
— Пароль #2 (указанный вами в кабинете клиента) - На текущий момент режим Робочеки не поддерживается.
2. Webmoney
- В первую очередь необходимо решить какой из кошельком будет использоваться для приема: WMZ, WMR, WMU, WME
- Выбрав кошелек, необходимо зайти в его настройки на сайте https://merchant.webmoney.ru
- Заполните настройки следующим образом:
- Тестовый/Рабочий режим — выбрать для начала тестовый, а после проверки приема платежей переключить на рабочий
- Торговое имя — например Example.com
- Secret Key — укажите любой набор символов
- Result URL — пример «http://example.com/bill/process/wm»
- Также не забыть отметить галочку справа «Передавать параметры в предварительном запросе»
- Success Url — пример «http://example.com/bill/success»
- Fail Url — пример «http://example.com/bill/fail»
- Метод формирования контрольной подписи: SHA256
- В указанных выше примерах также необходимо заменить 'example.com' на ваш домен
- Нажать «Сохранить»
- Заполнить соответствующие системные настройки (/config/sys.php) в разделе «Настройки услуг и систем оплаты (bills)».
Пример для настройки WMR кошелька, в случае если таковых нет, добавить аналогично уже имеющимся для Robokassa:bills.wm.wmr
— идентификатор R кошелька получателяbills.wm.wmr_secret
— секретный ключ R кошелька получателя (указывали в настройках кошелька в поле «Secret Key»)
- Также необходимо включить способ оплаты Webmoney:
- Открываем файл /modules/bills/bills.bl.class.php
- Находим метод getPaySystems
- Редактируем массив $aData и в разделе 'wm':
- Прописываем соответствующий тип кошелька в ключе 'way': 'wmr' / 'wmz' / 'wme' / 'wmu'
- Прописываем ID валюты в ключе 'currency_id' в которой будет выполнятся оплата пользователем
- Например:
— При оплате на кошелек WMR оплата будет проиводится в рублях, соответственно ставим ID рублей.
— При оплате на кошелек WMZ оплата будет проиводится в долларах, соответственно ставим ID долларов.
- Узнать ID подходящей вам валюты можно в админ. панели в разделе Настройки сайта / Валюта — первый столбец ID.
Если необходимой валюты нет, тогда создайте ее, не забыв указать курс по отношению к валюте по-умолчанию.
3. W1 (Wallet One)
- В первую очередь необходимо создать аккаунт в системе W1.
- Укажите настройки вашего магазина: название, URL сайта и остальные.
- В разделе «Настройки / Интеграция» заполните поле «URL скрипта» (Данные для отправки результата транзакции):
- Пример: «http://example.com/bill/process/w1»
- Где 'example.com' заменить на название вашего домена.
- Также в этом разделе укажите в поле «Цифровая подпись (ЭЦП)»:
- Метод формирования ЭЦП: MD5
- Сохраните сгенерированный для вас «секретный ключ».
- Заполните соответствующие системные настройки (/config/sys.php):
bills.w1.id
— Идентификатор (номер кошелька) интернет-магазина, полученный при регистрации.bills.w1.secret
— «секретный ключ» полученный ранееbills.w1.currency
— ID валюты оплаты по-умолчанию. Узнать его можно из документации, например:
643 — Российские рубли, 840 — Американские доллары, 978 — Евро, 980 — Украинские гривны, 398 — Казахстанские тенге
4. Приват24
- Для начала приема платежей необходимо зарегистрироваться в системе Приват24.
- В кабинете Приват24 нужно перейти в раздел Все услуги / Бизнес / Мерчант.
- На вкладке Регистрация заполните настройки следующим образом:
- Карта — из выпадающего списка нужно выбрать карту на которую будут приходить платежи.
- IP — укажите IP-адрес сервера, на котором размещен ваш сайт (пример: 192.168.0.1).
- Доступные операции мерчанта — отметьте нужные галочки, по умолчанию установлены все.
- Нажмите кнопку Далее. После подтверждения операции мерчант будет создан.
- Перейдите на вкладку Мои мерчанты и кликните по ссылке Редактировать данные.
- Скопируйте ID мерчанта (пример: 131557).
- Скопируйте Пароль мерчанта (пример: 4cprOo5TS5oR14jfn1iD6m377eq3VT3z).
- Заполните соответствующие системные настройки (/config/sys.php):
bills.privat24.merchantid
— ID мерчанта полученный ранее.bills.privat24.password
— Пароль мерчанта полученный ранее.
- Если же вы используете плагин оплаты Приват24 в таком случае заполните соответствуюищие поля в настройках плагина — Магазин и Пароль.
5. Liqpay
- Для начала приема платежей необходимо зарегистрироваться в системе Liqpay.
- В кабинете Liqpay создать магазин.
- Привязать к магазину платежную карту.
- В настройках магазина, таб «API», прописать:
- Отметьте «Наличие order_id»
- Отметьте «Наличие подписи (signature)»
- URL уведомлений сервер-сервер — http://example.com/bill/process/liqpay
- URL магазина клиент-сервер — http://example.com/bill/success
- Значение «Публичный ключ» записать в системную настройку
bills.liqpay.public_key
- Значение «Приватный ключ» записать в системную настройку
bills.liqpay.private_key
- В указанных выше значениях также необходимо заменить 'example.com' на ваш домен. Также в случае если ваш сайт работает в режиме https, подкорректируйте ссылки соответствующим образом.
- В системную настройку
bills.liqpay.currency
записать значение «Валюты платежа».- Возможные значения: 'USD', 'EUR', 'RUB', 'UAH'
- Проверить, чтобы валюта платежа совпадала со значением валюты указанной в методе getPaySystems, файл /modules/bills/bills.bl.class.php, пункт 'currency_id' для данного способа оплаты.
Другие системы оплаты (до версии 2.3.1)
- Для настройки другой системы оплаты необходимы знания языка PHP.
- В процессе настройки речь идет о редактировании модуля /modules/bills.
- Метод выполняющий обработку запроса от системы оплаты должен начинаться ключевым словом прикручеваемой системы оплаты и заканчиваться _request, к примеру необходимо прикрутить privat24, тогда необходимо назвать метод privat24_request.
Данный префикс также необходимо использовать при объявлении настроек системы оплаты, по аналогии с уже объявленными настройками, а также при формировании Result URL вызываемого системой оплаты.
Логика работы самого метода должна быть реализована аналогично уже существующим методам wm_request, rbkmoney_request, robox_request, zpay_request, w1_request (/bff/modules/bills/frontend.php).
Реализация метода должна быть выполнена во frontend классе модуля Bills (/modules/bills/bills.class.php)
Вызов данного метода будет выполняться методом processPayRequest в том же классе.
Общую логику можно описать следующим образом:- Метод вызывается по запросу системы оплаты
- Выполняются все необходимые проверки данных запроса исходя из API системы оплаты
- Если все успешно, вызывается метод processBill в который передается номер счета, сумма, ID системы оплаты (константа Bills::PS_)
- Если же что-то не так, метод возвращает ответ с указанием ошибки, исходя из API системы оплаты
- Также необходимо объявить константу класса, по аналогии с уже объявленными константами с префиксом PS_
- Кроме этого необходимо включить настроенную систему оплаты в качестве доступного способа оплаты:
- Файл /modules/bills/bills.bl.class.php, дописать константу в массив psystemsAllowed (метод init)
- В этом же файле добавить описание метода оплаты в методе getPaySystems, аналогично уже описанным.