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

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

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

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

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

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

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

    image

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

    image

    В блоке «Уведомления» установите флаг «По протоколу HTTP». Введите путь до файла 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.
    # Параметры подключения к LBcore
    HOST = '127.0.0.1'
    PORT = 1502
    MANAGER = 'super_pay'
    PASSWORD = '12345'
    

    ``

  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.
    # Параметры подключения к LBcore
    HOST = '127.0.0.1'
    PORT = 1502
    MANAGER = 'super_pay'
    PASSWORD = '12345'
    

    ``

  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.
    # Параметры подключения к LBcore
    HOST = '127.0.0.1'
    PORT = 1502
    MANAGER = 'super_pay'
    PASSWORD = '12345'
    

    ``

  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
    

    ``

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

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

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

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

    ``

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

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

      terminalKey = '1241860450455'
      password = 'xcltnjkzltchzybx'
      
      
      
    • Введите путь доступа к сервису:

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

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

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

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

      fiscalization = 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'
      
      
      
    • Введите путь доступа к сервису:

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

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

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

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

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

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

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

    ``

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