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

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

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

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

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

  2. В разделе «Технические настройки» укажите параметры:

    • Идентификатор магазина, придуманный при создании магазина.

    • Алгоритм расчёта хэша — MD5.

    • ResultURL — https://address/cgi-bin/robokassa.cgi

    • Метод отсылки данных по ResultURL — GET.

    • SuccessURL — https://address/lbweb-client/api.php?r=payment/success

    • Метод отсылки данных по SuccessURL — GET.

    • FailURL — https://address/lbweb-client/api.php?r=payment/fail

    • Метод отсылки данных по FailURL — GET.

    Вместо «address» впишите IP-адрес или URL сервера, где находится скрипт robokassa.cgi.

    Подробнее читайте в документации.

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

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

image

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

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

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

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

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

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

    ``

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

    • Метод подключения к LBcore. По умолчанию — http; если настроена работа API по SSL — https.
    • IP-адрес для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в LANBilling.
    • Путь, где будет храниться файл с логами.
    • «Пароль #2» из личного кабинета Robokassa. Он заполняется при регистрации, отображается в разделе «Технические настройки».
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    

    my $log_file = "/var/log/billing/weblogs/robokassa.log";

    my $mrh_pass2 = "test_Password_2";

    ``

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

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

    ``

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

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

    cp /usr/local/billing/payments/robokassa/robokassa.cgi /usr/lib/cgi-bin/
    

    ``

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

    • Метод подключения к LBcore. По умолчанию — http; если настроена работа API по SSL — https.
    • IP-адрес для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в LANBilling.
    • Путь, где будет храниться файл с логами.
    • «Пароль #2» из личного кабинета Robokassa. Он заполняется при регистрации, отображается в разделе «Технические настройки».
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    

    my $log_file = "/var/log/billing/weblogs/robokassa.log";

    my $mrh_pass2 = "test_Password_2";

    ``

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

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

    ``

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

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

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

    ``

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

    • Метод подключения к LBcore. По умолчанию — http; если настроена работа API по SSL — https.
    • IP-адрес для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в LANBilling.
    • Путь, где будет храниться файл с логами.
    • «Пароль #2» из личного кабинета Robokassa. Он заполняется при регистрации, отображается в разделе «Технические настройки».
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    

    my $log_file = "/var/log/billing/weblogs/robokassa.log";

    my $mrh_pass2 = "test_Password_2";

    ``

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

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

    ``

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

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

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

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

    ``

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

      [paysystems/robokassa]
      enabled = true
      
      
      
    • Укажите ссылку на платёжный шлюз Robokassa.

      url = 'https://auth.robokassa.ru/Merchant/Index.aspx'
      
      
      
    • Впишите идентификатор магазина в Robokassa, который был придуман при создании:

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

      minPaymentAmount = 10
      
      
      

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

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

    ``

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

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

    ``

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

      [paysystems/robokassa]
      enabled = true
      
      
      
    • Укажите ссылку на платёжный шлюз Robokassa.

      url = 'https://auth.robokassa.ru/Merchant/Index.aspx'
      
      
      
    • Впишите идентификатор магазина в Robokassa, который был придуман при создании:

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

      minPaymentAmount = 10
      
      
      

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

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

    ``

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

  1. В конфигурационном файле robokassa.ini включите тестовую оплату:

    [paysystems/robokassa/request/params]
    ; 0 - для обычной оплаты, 1 - для проведения тестовой оплаты
    IsTest = 1
    

    ``

  2. Проведите платёж из личного кабинета абонента.

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

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