Системы оплаты в доске объявлений

Порядок настройки систем оплат индивидуальный для каждой системы. Настройки полученные от системы следует указывать в файле системных настроек /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»)
    Аналогично и для других кошельков, только вместо wmr пишем: wmz, wme, wmu
  • Также необходимо включить способ оплаты 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.merchantidID мерчанта полученный ранее.
    • 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, аналогично уже описанным.
Еще по теме «Счета»