Приём платежей с помощью Точка Банка

Чтобы ваши абоненты могли оплачивать услуги в личном кабинете с помощью Точка Банка, последовательно выполните шаги настройки.

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

Личный кабинет в Точка Банке

Зарегистрируйтесь в системе эквайринга Точка Банка. Получите следующие идентификаторы, которые потребуются для дальнейшей настройки:

  • Cгенерируйте токен (JWT-ключ)
  • Узнайте свой Уникальный код клиента (customerCode) и Идентификатор торговой точки в интернет-эквайринге (merchantId)

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

Создать профиль менеджера для ВПС

Создайте профиль для платёжной системы в LANBilling.

image

Задать настройки ВПС

  1. Перейдите в раздел «Настройки» — «Настройки ВПС».

    image

  1. Нажмите «Добавить».

    image
  2. Выберите профиль менеджера, созданный ранее. Также выберите оператора, для которого будет действовать ВПС.

    Вы можете настроить несколько экземпляров одной платёжной системы. Для каждой из них пара менеджер/оператор должна быть уникальной.

  3. В поле «ВПС» выберите «Точка Банк». Появятся расширенные настройки этой платёжной системы.

    image

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

    • URL платёжного шлюза для платежа — https://enter.tochka.com/uapi/acquiring/v1.0/payments_with_receipt
    • URL платёжного шлюза для подписки (используется для автоплатежей) — https://enter.tochka.com/uapi/acquiring/v1.0/subscriptions_with_receipt
    • URL создания вебхука (документация) — https://enter.tochka.com/uapi/webhook/v1.0/{client_id}. Вместо client_id подставьте свой идентификатор.
    • URL для получения информации о платеже — https://enter.tochka.com/uapi/acquiring/v1.0/payments/
  4. Введите комментарий. Это поле обязательно для заполнения. Если вы используете несколько экземпляров одной ВПС, комментарий позволит вам отличать их друг от друга.

  5. Укажите данные, полученные в Точка Банке:

    • Уникальный код клиента
    • Идентификатор торговой точки в интернет-эквайринге
    • Токен (JWT-ключ)
  6. Введите URL, на который необходимо отправлять запрос вебхука.

  7. Название товара — введите наименование, которое будет подставляться в чек.

  8. Введите назначение платежа. Например, «оплата услуг», «выполнение работ».

  9. Укажите тип оплаты — возможные значения:

    • 0 — абонентам будет доступна только обычная оплата картой (без СБП),
    • 1 — абонентам будет доступна только оплата по СБП,
    • 2 — абонентам будут доступны оба способа: обычная оплата и СБП.
    image
  10. Сохраните настройки ВПС.

    image

Скрипт tochka.cgi

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

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

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

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

    ``

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

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

    # Настройки логирования TOCHKA_LOG = "/var/log/billing/weblogs/tochka.log"

    ``

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

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

    ``

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

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

    ``

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

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

    # Настройки логирования TOCHKA_LOG = "/var/log/billing/weblogs/tochka.log"

    ``

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

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

    ``

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

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

    ``

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

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

    # Настройки логирования TOCHKA_LOG = "/var/log/billing/weblogs/tochka.log"

    ``

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

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

    ``

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

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

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

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

    cp /usr/local/billing/payments/tochka/tochka_recurrent_payment.py /usr/local/billing/pymodules/
    

    ``

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

    MANAGER = 'super_pay'
    PASSWORD = '12345'
    OPER_ID = 1
    

    ``

  4. Перезапустите модуль LBcore. Команды различаются в разных ОС.

    systemctl restart lbcore
    
    service lbcore restart
    

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

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

  1. Откройте файл конфигурации tochka.ini.

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

    ``

    Включите платёжную систему, чтобы абоненты смогли вносить через неё оплаты в личном кабинете:

    [tochka]
    enabled = true
    

    ``

    Убедитесь, что настройки совпадают с теми, которые вы задали для ВПС в административном интерфейсе.

    Пример файла:

    ; Настройки Точка Банк
    [tochka]
    enabled = true
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = '1'
    ; url для запроса регистрации заказа
    payUrl = ''
    ; url для запроса регистрации заказа с подключением автоплатежей
    payUrlWithSubscription = ''
    ; Уникальный код клиента
    customerCode = ''
    ; Идентификатор торговой точки в интернет-эквайринге
    merchantId = ''
    ; JWT-ключ
    token = ''
    ; Описание заказа.
    ; Например: description = 'Оплата {amount} {currency} по договорам {agrnums}'
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ; Тип оплаты
    paymentMethod = 'full_payment'
    ; Признак предмета расчёта
    paymentObject = 'service'
    ; Единица измерения
    measure = 'шт.'
    ; Система налогообложения
    taxSystemCode = 'osn'
    ; URL адрес, куда будет переправлен клиент после оплаты услуги
    redirectUrl = ''
    ; URL адрес, куда будет переправлен клиент в случае неуспешной оплаты
    failRedirectUrl = ''
    ; Отображается на странице с qr кодом
    currency = 643
    ; Название товара. Не более 256 символов
    name = 'Оплата по договору'
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • epsManagerId — идентификатор профиля платёжной системы в LANBilling. Укажите идентификатор того же профиля, который создали для этой ВПС в административном интерфейсе.

    • payUrl — URL платёжного шлюза.

    • payUrlWithSubscription — URL платёжного шлюза для подписки (используется для автоплатежей).

    • customerCode — Уникальный код клиента, полученный при регистрации в системе эквайринга.

    • merchantId — Идентификатор торговой точки, полученный при регистрации в системе эквайринга.

    • token — JWT-ключ, сгенерированный в системе эквайринга.

    • description — описание платежа, отображаемое для пользователя.

    • paymentMethod — признак способа расчета. Варианты:

      • full_prepayment — предоплата 100%
      • full_payment — полный расчёт
    • paymentObject — тип оплачиваемой позиции (признак предмета расчёта). Примеры допустимых значений:

      • goods — товары
      • service — услуги
      • work — работа
    • measure — единица измерения товара.

    • taxSystemCode — система налогообложения. Укажите СНО оператора:

      • osn — общая
      • usn_income — упрощенная (доходы)
      • usn_income_outcome — упрощенная (доходы минус расходы)
      • esn
      • patent
    • redirectUrl — URL-адрес, куда будет переправлен клиент после успешной оплаты. Необходим протокол https.

    • failRedirectUrl — URL-адрес, куда будет переправлен клиент в случае неуспешной оплаты. Необходим протокол https.

    • currency — код валюты (по ISO 4217). По умолчанию используется 643 (рубль).

    • name — название товара. Не более 256 символов.

    • allowAutoPayments — возможность подключать автоплатежи.

      • true — клиенты смогут подключать автооплату.
      • false — клиенты не смогут подключать автооплату.
    • minPaymentAmount — позволяет задать минимальную сумму, на которую ваши абоненты могут пополнить баланс. Если не хотите использовать это ограничение, укажите значение 0.

    • useCardPayment — включает возможность обычной оплаты картой (не СБП) в личном кабинете и Telegram-боте.

      • true — клиенты смогут использовать обычную оплату картой.
      • false — клиенты не смогут использовать обычную оплату картой.
    • useSbpPayment — включает возможность оплаты по СБП в личном кабинете и Telegram-боте.

      • true — клиенты смогут оплачивать услуги по СБП.
      • false — клиенты не смогут оплачивать услуги по СБП.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

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

    ``

  1. Откройте файл конфигурации tochka.ini:

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

    ``

    Включите платёжную систему, чтобы абоненты смогли вносить через неё оплаты в личном кабинете:

    [tochka]
    enabled = true
    

    ``

    Убедитесь, что настройки совпадают с теми, которые вы задали для ВПС в административном интерфейсе.

    Пример файла:

    ; Настройки Точка Банк
    [tochka]
    enabled = true
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = '1'
    ; url для запроса регистрации заказа
    payUrl = ''
    ; url для запроса регистрации заказа с подключением автоплатежей
    payUrlWithSubscription = ''
    ; Уникальный код клиента
    customerCode = ''
    ; Идентификатор торговой точки в интернет-эквайринге
    merchantId = ''
    ; JWT-ключ
    token = ''
    ; Описание заказа.
    ; Например: description = 'Оплата {amount} {currency} по договорам {agrnums}'
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ; Тип оплаты
    paymentMethod = 'full_payment'
    ; Признак предмета расчёта
    paymentObject = 'service'
    ; Единица измерения
    measure = 'шт.'
    ; Система налогообложения
    taxSystemCode = 'osn'
    ; URL адрес, куда будет переправлен клиент после оплаты услуги
    redirectUrl = ''
    ; URL адрес, куда будет переправлен клиент в случае неуспешной оплаты
    failRedirectUrl = ''
    ; Отображается на странице с qr кодом
    currency = 643
    ; Название товара. Не более 256 символов
    name = 'Оплата по договору'
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • epsManagerId — идентификатор профиля платёжной системы в LANBilling. Укажите идентификатор того же профиля, который создали для этой ВПС в административном интерфейсе.

    • payUrl — URL платёжного шлюза.

    • payUrlWithSubscription — URL платёжного шлюза для подписки (используется для автоплатежей).

    • customerCode — Уникальный код клиента, полученный при регистрации в системе эквайринга.

    • merchantId — Идентификатор торговой точки, полученный при регистрации в системе эквайринга.

    • token — JWT-ключ, сгенерированный в системе эквайринга.

    • description — описание платежа, отображаемое для пользователя.

    • paymentMethod — признак способа расчета. Варианты:

      • full_prepayment — предоплата 100%
      • full_payment — полный расчёт
    • paymentObject — тип оплачиваемой позиции (признак предмета расчёта). Примеры допустимых значений:

      • goods — товары
      • service — услуги
      • work — работа
    • measure — единица измерения товара.

    • taxSystemCode — система налогообложения. Укажите СНО оператора:

      • osn — общая
      • usn_income — упрощенная (доходы)
      • usn_income_outcome — упрощенная (доходы минус расходы)
      • esn
      • patent
    • redirectUrl — URL-адрес, куда будет переправлен клиент после успешной оплаты. Необходим протокол https.

    • failRedirectUrl — URL-адрес, куда будет переправлен клиент в случае неуспешной оплаты. Необходим протокол https.

    • currency — код валюты (по ISO 4217). По умолчанию используется 643 (рубль).

    • name — название товара. Не более 256 символов.

    • allowAutoPayments — возможность подключать автоплатежи.

      • true — клиенты смогут подключать автооплату.
      • false — клиенты не смогут подключать автооплату.
    • minPaymentAmount — позволяет задать минимальную сумму, на которую ваши абоненты могут пополнить баланс. Если не хотите использовать это ограничение, укажите значение 0.

    • useCardPayment — включает возможность обычной оплаты картой (не СБП) в личном кабинете и Telegram-боте.

      • true — клиенты смогут использовать обычную оплату картой.
      • false — клиенты не смогут использовать обычную оплату картой.
    • useSbpPayment — включает возможность оплаты по СБП в личном кабинете и Telegram-боте.

      • true — клиенты смогут оплачивать услуги по СБП.
      • false — клиенты не смогут оплачивать услуги по СБП.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

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

    ``

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

Как устроена работа с НДС

Система берёт значение ставки НДС из карточки оператора. Если в карточке оператора не задана ставка НДС или значение не удаётся распознать — применяется значение «Без НДС».

При пополнении сразу нескольких договоров для каждого из них создаётся отдельная позиция в чеке с соответствующей ставкой НДС. Это связано с тем, что в разных договорах могут быть указаны разные операторы, и у каждого из них может быть своя ставка НДС.