Взаимодействие с платёжной системой «PayMaster»

Чтобы абоненты-физлица могли оплачивать счета в личном кабинете с помощью PayMaster, последовательно настройте пять объектов.

  1. Личный кабинет PayMaster
  2. Административный интерфейс АСР LANBilling
  3. Скрипт для callback-уведомлений
  4. Скрипт для автоматических платежей
  5. Конфигурационный файл

Личный кабинет PayMaster

  1. Зарегистрируйтесь на сайте PayMaster.

  2. После получения логина и пароля в личном кабинете укажите параметры:

    • Задайте секретный ключ.

      image
    • Укажите URL для оповещений об оплате:

      • Метод: POST
      • Url: https://address/cgi-bin/paymaster/paymaster_v2.py, где address — IP-адрес или URL сервера со скриптом paymaster_v2.py.
      image
    • Сгенерируйте API-токен. Его нужно будет указать в файле paymaster_recurrent_payment.py.

      1. Перейдите в раздел «API токены».
      image
      1. Нажмите «Добавить».

      2. Введите описание и кликните «Добавить». Система сгенерирует токен.

      image

Административный интерфейс АСР LANBilling

Создайте профиль для платёжной системы в АСР LANBilling. Логин и пароль нужно будет указать в скрипте callback-уведомлений.

image

Скрипт для callback-уведомлений paymaster_v2.py

Скрипт нужен, чтобы фиксировать в АСР LANBilling результаты оплат. Он обрабатывает запросы от платёжной системы — в них содержится информация об операциях. На основании этих данных скрипт создаёт платежи в биллинге.

Настройка различается для разных ОС.

  1. Скопируйте файл paymaster_v2.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/paymaster/paymaster_v2.py /var/www/cgi-bin/
    

    ``

  2. Укажите в нём настройки доступа.

    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в АСР LANBilling.
    HOST = '127.0.0.1'
    PORT = 34012
    MANAGER_LOGIN = 'super_pay'
    MANAGER_PASS = '12345'
    

    ``

  3. Сделайте скрипт исполняемым:

    chmod +x /var/www/cgi-bin/paymaster_v2.py
    

    ``

  1. Скопируйте файл paymaster_v2.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/paymaster/paymaster_v2.py /usr/lib/cgi-bin/
    

    ``

  2. Укажите в нём настройки доступа.

    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в АСР LANBilling.
    HOST = '127.0.0.1'
    PORT = 34012
    MANAGER_LOGIN = 'super_pay'
    MANAGER_PASS = '12345'
    

    ``

  3. Сделайте скрипт исполняемым:

    chmod +x /usr/lib/cgi-bin/paymaster_v2.py
    

    ``

  1. Скопируйте файл paymaster_v2.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/paymaster/paymaster_v2.py /usr/local/www/apache24/cgi-bin/
    

    ``

  2. Укажите в нём настройки доступа.

    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в АСР LANBilling.
    HOST = '127.0.0.1'
    PORT = 34012
    MANAGER_LOGIN = 'super_pay'
    MANAGER_PASS = '12345'
    

    ``

  3. Сделайте скрипт исполняемым:

    chmod +x /usr/local/www/apache24/cgi-bin/paymaster_v2.py
    

    ``

Скрипт для автоматических платежей paymaster_recurrent_payment.py

Выполните эти шаги, если вы работаете с автоплатежами.

  1. Скопируйте скрипт paymaster_recurrent_payment.py в директорию /usr/local/billing/pymodules/:

    cp /usr/local/billing/payments/paymaster/paymaster_recurrent_payment.py /usr/local/billing/pymodules/
    

    ``

  2. Укажите настройки в файле.

    • Логин и пароль из профиля платёжной системы в АСР LANBilling:

      MANAGER_LOGIN = 'super_pay'
      MANAGER_PASSWORD = '12345'
      
      
      
    • ID оператора в биллинге. Если в скрипте задан ненулевой идентификатор OPER_ID, то автоплатежи будут выполняться только по договорам этого оператора:

      OPER_ID = 0
      
      
      
    • Ссылка на платёжный шлюз:

      PAYMENT_URL = 'https://paymaster.ru/api/v2/payments'
      
      
      
    • API-токен — его можно посмотреть в личном кабинете PayMaster:

      AUTH_TOKEN = 'fgdfghh543hhgjhssdgdfg'
      
      
      
    • Адрес, по которому находится скрипт paymaster_v2.py:

      CALLBACK_URL = 'https://address/cgi-bin/paymaster/paymaster_v2.py'
      
      
      
    • Идентификатор магазина — его можно посмотреть в личном кабинете PayMaster:

      MERCHANT_ID = 'b1b12d35-f058-4f0e-aafa-86187bc9a7d0'
      
      
      
    • Название товара в чеке онлайн-кассы:

      PRODUCT_NAME = 'Пополнение счета'
      
      
      
    • Код валюты:

      PAYMENT_CURRENCY = 'RUB'
      
      
      
    • Величина ставки НДС. Например, 20%:

      VAT_CODE = 'Vat20'
      
      
      
    • Признак предмета и способа расчёта:

      PAYMENT_SUBJECT = 'Payment'
      PAYMENT_METHOD = 'FullPayment'
      
      
      
  3. Перезапустите модуль LBcore:

    systemctl restart lbcore
    

    ``

Конфигурационный файл paymaster.ini

Действия различаются для разных ОС.

  1. Внесите изменения в файл конфигурации paymaster.ini:

    nano /etc/lanbilling/phpclient/client/paymaster.ini
    

    ``

    • Включите платёжную систему в личном кабинете абонентов АСР LANBilling:

      [paymaster]
      enabled = true
      
      
      
    • Укажите ссылку на платёжный шлюз:

      url = 'https://paymaster.ru/api/v2/invoices'
      
      
      
    • Если вы работаете с автоплатежами, укажите ID профиля платёжной системы из АСР LANBilling:

      epsManagerId = 14
      
      
      
    • Если вы не работаете с автоплатежами, отключите их:

      allowAutoPayments = false
      
      
      
    • Введите идентификатор магазина и API-токен — их можно посмотреть в личном кабинете PayMaster:

      merchantId = 'b1b12d35-f058-4f0e-aafa-86187bc9a7d0'
      token = 'fgdfghh543hhgjhssdgdfg'
      
      
      
    • Укажите адрес для оповещений об оплате и адрес для возврата после операции:

      callbackUrl = 'https://address/cgi-bin/paymaster/paymaster_v2.py'
      returnUrl = 'https://lanbilling.ru'
      
      
      

  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
    

    ``

  1. Внесите изменения в файл конфигурации paymaster.ini:

    nano /usr/local/etc/lanbilling/phpclient/client/paymaster.ini
    

    ``

    • Включите платёжную систему в личном кабинете абонентов АСР LANBilling:

      [paymaster]
      enabled = true
      
      
      
    • Укажите ссылку на платёжный шлюз:

      url = 'https://paymaster.ru/api/v2/invoices'
      
      
      
    • Если вы работаете с автоплатежами, укажите ID профиля платёжной системы из АСР LANBilling:

      epsManagerId = 14
      
      
      
    • Если вы не работаете с автоплатежами, отключите их:

      allowAutoPayments = false
      
      
      
    • Введите идентификатор магазина и API-токен — их можно посмотреть в личном кабинете PayMaster:

      merchantId = 'b1b12d35-f058-4f0e-aafa-86187bc9a7d0'
      token = 'fgdfghh543hhgjhssdgdfg'
      
      
      
    • Укажите адрес для оповещений об оплате и адрес для возврата после операции:

      callbackUrl = 'https://address/cgi-bin/paymaster/paymaster_v2.py'
      returnUrl = 'https://lanbilling.ru'
      
      
      

  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /usr/local/etc/lanbilling/phpclient/client/
    

    ``

Проверка взаимодействия

  1. Включите тестовый режим.

    • В файле paymaster.ini:

      ; Флаг тестового платежа
      testMode = true
      
      
      
    • В файле paymaster_recurrent_payment.py:

      # Флаг тестового платежа
      TEST_MODE = true
      
      
      
  2. Проведите платёж из личного кабинета абонента.

    1. В форме оплаты PayMaster введите номер карты 4100000000000010 — строго 16 цифр, остальные данные любые.

    2. Нажмите «Оплатить». При успешном проведении платежа он отобразится в личном кабинете PayMaster в списке платежей со статусом «Проведён».

  3. Отключите тестовый режим.

Настройка завершена. Теперь абоненты-физлица могут пополнять баланс в личном кабинете с помощью этой платёжной системы.