Приём платежей с помощью «QIWI»

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

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

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

  1. Подключите интернет-эквайринг QIWI, следуя инструкциям.

  2. Добавьте токен. Для этого в личном кабинете QIWI перейдите в раздел «Услуги» и кликните ваш сайт.

    image

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

    image

    В открывшемся окне укажите путь до скрипта уведомлений qiwi_acq.cgi на вашем веб-сервере и нажмите «Создать».

    image

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

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

image

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

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

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

  1. Убедитесь, что установлен PHP 7, а также пакеты perl-cgi и perl-soap-lite.

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

    cp /usr/local/billing/payments/qiwi/qiwi_acq.cgi /var/www/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в LANBilling.
    • Ключ серверных уведомлений из личного кабинета QIWI.
    • Путь, где будет храниться файл с логами.
    • Идентификатор категории платежей.
    # Подключение к LBcore
    HOST = '127.0.0.1'
    PORT = 1502
    MANAGER = 'super_pay'
    PASSWORD = '12345'
    

    # Ключ серверных уведомлений secret = 'a1bcd345efg678hij90'

    # Настройки логирования, нужны права доступа к файлу у веб-сервера QIWI_LOG = '/var/log/billing/weblogs/qiwi_acq.log'

    # Класс платежа (id) из таблицы pay_classses CLASS_ID = 0

    ``

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

    chmod +x /var/www/cgi-bin/qiwi_acq.cgi
    

    ``

  1. Убедитесь, что установлен PHP 7, а также пакеты libsoap-lite-perl, libxml-simple-perl, libcgi-session-perl, libtext-iconv-perl.

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

    cp /usr/local/billing/payments/qiwi/qiwi_acq.cgi /usr/lib/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в LANBilling.
    • Ключ серверных уведомлений из личного кабинета QIWI.
    • Путь, где будет храниться файл с логами.
    • Идентификатор категории платежей.
    # Подключение к LBcore
    HOST = '127.0.0.1'
    PORT = 1502
    MANAGER = 'super_pay'
    PASSWORD = '12345'
    

    # Ключ серверных уведомлений secret = 'a1bcd345efg678hij90'

    # Настройки логирования, нужны права доступа к файлу у веб-сервера QIWI_LOG = '/var/log/billing/weblogs/qiwi_acq.log'

    # Класс платежа (id) из таблицы pay_classses CLASS_ID = 0

    ``

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

    chmod +x /usr/lib/cgi-bin/qiwi_acq.cgi
    

    ``

  1. Убедитесь, что установлен PHP 7, а также пакеты p5-IO-SessionData и p5-SOAP-Lite.

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

    cp /usr/local/billing/payments/qiwi/qiwi_acq.cgi /usr/local/www/apache24/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в LANBilling.
    • Ключ серверных уведомлений из личного кабинета QIWI.
    • Путь, где будет храниться файл с логами.
    • Идентификатор категории платежей.
    # Подключение к LBcore
    HOST = '127.0.0.1'
    PORT = 1502
    MANAGER = 'super_pay'
    PASSWORD = '12345'
    

    # Ключ серверных уведомлений secret = 'a1bcd345efg678hij90'

    # Настройки логирования, нужны права доступа к файлу у веб-сервера QIWI_LOG = '/var/log/billing/weblogs/qiwi_acq.log'

    # Класс платежа (id) из таблицы pay_classses CLASS_ID = 0

    ``

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

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

    ``

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

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

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

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

    ``

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

      [paysystems/qiwi]
      enabled = true
      
      
      
    • Укажите токен из личного кабинета QIWI.

      secret = 'xyz987wvu654tsq321'
      
      
      
    • Установите минимальную сумму платежа. Чтобы убрать ограничение, введите «0».

      minPaymentAmount = 10
      
      
      
    • Дополнительно: валюта.

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

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

    ``

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

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

    ``

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

      [paysystems/qiwi]
      enabled = true
      
      
      
    • Укажите токен из личного кабинета QIWI.

      secret = 'xyz987wvu654tsq321'
      
      
      
    • Установите минимальную сумму платежа. Чтобы убрать ограничение, введите «0».

      minPaymentAmount = 10
      
      
      
    • Дополнительно: валюта.

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

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

    ``

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

Взаимодействие с помощью URL

Также вы можете взаимодействовать с QIWI без использвания API — с помощью обращений по URL. Для этого можно использовать виджеты QIWI или разместить на своём сайте веб-форму, которая будет генерировать URL и обращаться к платёжной системе. Пример URL:

https://oplata.qiwi.com/create?publicKey=ABCD1234&amount=567.89&extras[cf1]=Contract-0
  • publicKey — публичный ключ для авторизации. Запросите его у службы поддержки QIWI.

  • amount — сумма платежа.

  • extras[cf1] — номер договора в LANBilling. На языке php этот параметр можно сформировать так:

    "extras[cf1]"=>$_POST['account_number']
    
    
    

Однако — в отличие от взаимодействия по API — этот способ не даёт гарантии, что мерчант выставил все счета.