Взаимодействие с платёжной cистемой «Тинькофф Касса»

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

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

Личный кабинет Тинькофф

  1. Оставьте заявку на подключение Тинькофф Кассы. Дождитесь, пока сотрудники предоставят вам доступ в личный кабинет и создадут магазин.

  2. В личном кабинете укажите, где располагается скрипт callback-уведомлений tinkoff.py.

    Для этого в разделе «Интернет-эквайринг» перейдите на вкладку «Магазины» и выберите магазин.

    image

    Перейдите на вкладку «Терминалы» и нажмите «Настроить».

    image

    В блоке «Уведомления» установите флаг «По протоколу HTTP». Введите путь до скрипта callback-уведомлений tinkoff.py на вашем веб-сервере.

    image

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

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

image

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

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

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

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

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

    ``

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

    • Путь, где будет храниться файл с логами.
    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в АСР LANBilling.
    • Идентификатор категории платежей.
    # Настройки логирования
    TINKOFF_LOG = '/var/log/billing/tinkoff.log'
    

    # Параметры подключения к LBcore HOST = '127.0.0.1' PORT = 1502 MANAGER = 'super_pay' PASSWORD = '12345'

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

    ``

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

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

    ``

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

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

    ``

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

    • Путь, где будет храниться файл с логами.
    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в АСР LANBilling.
    • Идентификатор категории платежей.
    # Настройки логирования
    TINKOFF_LOG = '/var/log/billing/tinkoff.log'
    

    # Параметры подключения к LBcore HOST = '127.0.0.1' PORT = 1502 MANAGER = 'super_pay' PASSWORD = '12345'

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

    ``

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

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

    ``

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

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

    ``

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

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

    • Путь, где будет храниться файл с логами.
    • IP-адрес и порт для подключения к LBcore.
    • Логин и пароль от профиля платёжной системы в АСР LANBilling.
    • Идентификатор категории платежей.
    # Настройки логирования
    TINKOFF_LOG = '/var/log/billing/tinkoff.log'
    

    # Параметры подключения к LBcore HOST = '127.0.0.1' PORT = 1502 MANAGER = 'super_pay' PASSWORD = '12345'

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

    ``

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

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

    ``

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

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

  1. Убедитесь, что установлен Python 3, а также дополнительные пакеты. Список различается в зависимости от ОС.

    Необходимый пакет: python3-requests.
    Необходимый пакет: python3-requests.noarch.
    Необходимый пакет: py39-requests.
  2. Скопируйте скрипт tinkoff_recurrent_payment.py в директорию /usr/local/billing/pymodules/:

    cp /usr/local/billing/payments/tinkoff/tinkoff_recurrent_payment.py /usr/local/billing/pymodules/
    

    ``

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

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

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

      OPER_ID = 1
      
      
      
    • Настройки подключения к серверу эквайринга.

      TERMINAL_KEY = '1241860450455' # Идентификатор терминала, выдается Продавцу Банком
      TERMINAL_PASS = 'xcltnjkzltchzybx' # пароль для терминала, указан в Личном кабинете
      
      
      
    • Дополнительно: код валюты, ставка НДС (в примере — 20%), система налогообложения.

      CURRENCY = '643'
      TAX = 'vat20'
      TAXATION = 'osn'
      
      
      
  4. Перезапустите модуль LBcore. Команды различаются в разных ОС.

    systemctl restart lbcore
    
    service lbcore restart
    

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

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

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

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

    ``

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

      [tinkoff]
      enabled = true
      
      
      
    • Введите идентификатор терминала и пароль — их можно посмотреть в личном кабинете Тинькофф:

      terminalKey = '1241860450455'
      password = 'xcltnjkzltchzybx'
      
      
      
    • Укажите cсылку на платёжный шлюз:

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

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

      allowAutoPayments = false
      
      
      
    • Тинькофф Касса может сохранять информацию о карте — абоненту не придётся вводить её каждый раз. Для этого включите параметр:

      useCustomerKey = true
      
      
      
    • Решите, нужна ли фискализация от Тинькофф Кассы:

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

      minPaymentAmount = 10
      
      
      
    • Включите отображение кнопки оплаты через СБП.

      useSbpPayment = true
      
      
      
    • Дополнительно: валюта, ставка НДС, система налогообложения.

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

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

    ``

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

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

    ``

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

      [tinkoff]
      enabled = true
      
      
      
    • Введите идентификатор терминала и пароль — их можно посмотреть в личном кабинете Тинькофф:

      terminalKey = '1241860450455'
      password = 'xcltnjkzltchzybx'
      
      
      
    • Укажите cсылку на платёжный шлюз:

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

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

      allowAutoPayments = false
      
      
      
    • Тинькофф Касса может сохранять информацию о карте — абоненту не придётся вводить её каждый раз. Для этого включите параметр:

      useCustomerKey = true
      
      
      
    • Решите, нужна ли фискализация от Тинькофф Кассы:

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

      minPaymentAmount = 10
      
      
      
    • Включите отображение кнопки оплаты через СБП.

      useSbpPayment = true
      
      
      
    • Дополнительно: валюта, ставка НДС, система налогообложения.

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

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

    ``

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