Smarty

  1. Домой
  2. Документы
  3. Smarty
  4. Интеграция дополнительных сервисов
  5. Интеграция с платежными шлюзами

Интеграция с платежными шлюзами

Интеграция с платежными шлюзами

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

Платежные шлюзы интегрируются со Smarty по следующей схеме:

Платежный шлюз — это сторонний сервис, компания, специализирующаяся на процессинге платежей. Оператор должен заключить договор с тем или иным платежным шлюзом, после чего произвести настройку интеграции в Smarty.

Платежный шлюз предоставляет API для создания и подтверждения платежей, а также платежную форму (мерчант) для ввода данных карт или выбора других способов оплаты.

Для того, чтобы платежный шлюз можно было использовать внутри приложения, шлюз должен разработать для вашего сервиса адаптированную для всех устройств (в особенности для ТВ-платформ) форму оплаты.

Таким образом, схему взаимодействия можно описать так:

  1. Абонент открывает раздел «Оплата» в приложении, либо в личном кабинете на сайте. Функция оплаты должна быть активирована в опциях сборки приложения, включена в личном кабинете, а также должна быть настроена интеграция с тем или иным платежным шлюзом.
  2. Приложение отправляет запрос в Smarty, Smarty формирует URL страницы оплаты на стороне шлюза.
  3. Приложение открывает страницу оплаты с сервера шлюза.
  4. Абонент указывает данные оплаты и инициирует оплату.
  5. Приложение отправляет запрос в Smarty.
  6. Smarty отправляет запрос в платежный шлюз.
  7. Платежный шлюз осуществляет процессинг платежа. При подтверждении оплаты шлюз отправляет запрос в Smarty о подтверждении операции.
  8. Smarty при получении запроса подтверждения обновляет внутренний баланс абонента, производит подключение услуги/продление периода.
  9. Согласно условиям договора платежный шлюз периодически переводит денежные средства на расчетный счет оператора.

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

3DS авторизация

По умолчанию при оплате картой банк использует 3DS-авторизацию для подтверждения операции, как правило для этого владелец карты должен ввести одноразовый код, полученный в СМС.

Формы ввода одноразового кода обычно не адаптированы для телевизоров, поэтому при использовании такой авторизации абонент не сможет ввести код, и в некоторых случаях не сможет закрыть страницу банка и вернуться в приложение.

Для решения этой проблемы рекомендуется отключать 3DS-авторизацию по согласованию с платежным шлюзом и банком. Данная опция доступна, но увеличивает стоимость услуг процессинга.

Payture

Возможность оплаты с ТВДа
Возможность оплаты с мобильных устройствДа
Возможность оплаты в личном кабинетеДа
Поддержка оплаты с картыДа
Возможность отключения 3DSДа
Поддержка рекуррентных платежейДа
Поддержка других способов оплаты (электронные деньги и др.)Нет
Поддержка оплаты с помощью СБПДа

Payture – платежный шлюз с возможностью привязки и удаления карт, а также настройки автоплатежа. Особенность работы – форма для оплаты находится на стороне шлюза и открывается внутри элемента iframe в виджете на сайте или на странице оплаты в приложении. На данный момент существует 3 шаблона страниц оплаты:

  • Для оплаты в мобильных и десктопных браузерах (стандартная форма Payture). Имя шаблона – Payture.
  • Для оплаты из приложения внутри Smart TV или приставки (адаптирована под управление пультом, поддерживается только на устройствах с протоколом TLS 1.2 и выше). Имя шаблона – пустая строка.
  • Для оплаты из приложения внутри телевизора Samsung Smart TV под Orsay (загружает специальные плагины для взаимодействия с данными устройствами). Имя шаблона – Orsay.

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью Payture необходимо:

  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «Payture»:
    • Данные для полей «Host», «Pay Key», «Add Key», «VAT» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
    • В поле «Шаблон платежной страницы» указать один из шаблонов страниц оплаты (описание см. выше). В случае, если будет использоваться оплата с помощью виджета на сайте, по умолчанию рекомендуется указать шаблон «Payture», а для оплаты внутри приложения на телевизоре настроить шаблон через конфигурацию портала в файле /etc/microimpuls/portal/сlient.js (параметр template_of_payment_page).
    • В поле «Состояние опции ‘Запомнить карту’ по умолчанию» указать способ отображения опции «Запомнить карту» на странице оплаты.
  • Настроить в Payture нотификацию на адрес: http://smarty.example.com/billing/payment/payture/validate_notify/ (оcуществляется на стороне платежного шлюза по запросу, вместо адреса smarty.example.com необходимо указать адрес вашего сервера Smarty).
  • При необходимости в файле конфигурации портала настроить поля merchant_type и template_of_payment_page (есть возможность произвести тонкую настройку данных полей в зависимости от устройств).
  • Удостовериться в корректности работы платежной формы внутри приложения, а также в виджете оплаты на сайте, если таковой используется.

Wallet One

Возможность оплаты с ТВДа
Возможность оплаты с мобильных устройств*
Возможность оплаты в личном кабинетеДа
Поддержка оплаты с картыДа
Возможность отключения 3DSНет
Поддержка рекуррентных платежейНет
Поддержка других способов оплаты (электронные деньги и др.)Да

* Требует доработки под оператора.

Варианты интеграции:

  • Wallet One — разные способы оплаты — используется для подключения разных способов оплаты (электронные деньги, терминалы оплаты и т.д.) в личном кабинете.
  • Wallet One — оплата картой — используется для подключения формы оплаты картой.

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью Wallet One необходимо:

  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «Wallet One — разные способы оплаты» либо «Wallet One — оплата картой» и указать:
    • Данные для полей «Merchant ID», «Private Key» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
    • В поле «Адрес перехода после успешной оплаты» указать URL страницы, на которую будет произведен переход после успешной оплаты (используется только при оплате в личном кабинете на сайте).
    • В поле «Адрес перехода после ошибки оплаты» указать URL страницы, на которую будет произведен переход после неуспешной оплаты (используется только при оплате в личном кабинете на сайте).
  • Настроить в Wallet One адрес подтверждения операций на URL: http://smarty.example.com/billing/payment/w1/result/ (оcуществляется на стороне платежного шлюза, вместо адреса smarty.example.com необходимо указать адрес вашего сервера Smarty).
  • При необходимости в файле конфигурации портала настроить поле merchant_type (есть возможность произвести тонкую настройку данных полей в зависимости от устройств).

PayPal

Возможность оплаты с ТВНет
Возможность оплаты с мобильных устройствНет
Возможность оплаты в личном кабинетеДа
Поддержка оплаты с картыДа
Возможность отключения 3DSНет
Поддержка рекуррентных платежейНет
Поддержка других способов оплаты (электронные деньги и др.)Нет

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью Paypal необходимо:

  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «Paypal» и указать:
    • Данные для полей «Merchant ID», «Private Key» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
    • В поле «Адрес перехода после успешной оплаты» указать URL страницы, на которую будет произведен переход после успешной оплаты (используется только при оплате в личном кабинете на сайте).
    • В поле «Адрес перехода после ошибки оплаты» указать URL страницы, на которую будет произведен переход после неуспешной оплаты (используется только при оплате в личном кабинете на сайте).
  • Настроить в Paypal адрес подтверждения оплаты на URL: http://smarty.example.com/billing/payment/paypal/result/ (оcуществляется на стороне платежного шлюза, вместо адреса smarty.example.com необходимо указать адрес вашего сервера Smarty).

Для перевода шлюза PayPal в тестовый режим можно воспользоваться опцией PAYPAL_SANDBOX_MODE. При значении True происходит переход в тестовый режим (режим песочницы). Тип данных: bool. По умолчанию False.

Fortebank

Возможность оплаты с ТВДа
Возможность оплаты с мобильных устройствДа
Возможность оплаты в личном кабинетеНет
Поддержка оплаты с картыДа
Возможность отключения 3DSДа
Поддержка рекуррентных платежейДа
Поддержка других способов оплаты (электронные деньги и др.)Нет

Fortebank – платежный шлюз с возможностью привязки и удаления карт, а также настройки автоплатежа. Оплата возможна как с помощью встроенной в приложение формы, так и с помощью платежного виджета банка (последний необходимо встраивать в сайт или приложение самостоятельно, поддержки виджета в приложении — нет).

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью Fortebank необходимо:

  • В Smarty перейти в «Общие настройки» → «Общие настройки Client» и в полях «Способ оплаты по умолчанию» и «Способ оплаты по умолчанию с помощью карты» выбрать Fortbank.
  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «Fortebank»:
    • Данные для полей «Имя пользователя», «Пароль» и «URL хоста» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
    • В поле «Адрес перехода после успешной оплаты» указать URL страницы, на которую будет произведен переход в случае успешной оплаты. Если оплата происходит только с экрана телевизора, то поле можно оставить пустым.
  • Настроить работу команды сheck_payment_status для валидации статусов платежей.
  • Удостовериться в корректности работы платежной формы внутри приложения.

ArCa

Возможность оплаты с ТВНет
Возможность оплаты с мобильных устройств*
Возможность оплаты в личном кабинетеДа
Поддержка оплаты с картыДа
Возможность отключения 3DS
Поддержка рекуррентных платежейНет
Поддержка других способов оплаты (электронные деньги и др.)Нет

* Требует доработки под оператора.

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью ArCa.am необходимо:

  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «ArCa» и указать:
    • Данные для полей «Merchant Login» и «Merchant Password» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
    • В поле «Адрес перехода после успешной оплаты» указать URL страницы, на которую будет произведен переход после успешной оплаты (используется только при оплате в личном кабинете на сайте).
    • В поле «Адрес перехода после ошибки оплаты» указать URL страницы, на которую будет произведен переход после неуспешной оплаты (используется только при оплате в личном кабинете на сайте).

PayMaster

Возможность оплаты с ТВНет
Возможность оплаты с мобильных устройствНет
Возможность оплаты в личном кабинетеДа
Поддержка оплаты с картыНет
Возможность отключения 3DSНет
Поддержка рекуррентных платежейНет
Поддержка других способов оплаты (электронные деньги и др.)Да

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью PayMaster необходимо:

  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «PayMaster» и указать:
    • Данные для полей «Merchant ID», «Secret Key», «Hash type» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
    • В поле «Адрес перехода после успешной оплаты» указать URL страницы, на которую будет произведен переход после успешной оплаты (используется только при оплате в личном кабинете на сайте).
    • В поле «Адрес перехода после ошибки оплаты» указать URL страницы, на которую будет произведен переход после неуспешной оплаты (используется только при оплате в личном кабинете на сайте).
  • Настроить в PayMaster адрес подтверждения оплаты на URL: http://smarty.example.com/billing/payment/paymaster/validate_notify/ (оcуществляется на стороне платежного шлюза, вместо адреса smarty.example.com необходимо указать адрес вашего сервера Smarty).

SquareUp

Возможность оплаты с ТВНет
Возможность оплаты с мобильных устройствНет
Возможность оплаты в личном кабинетеДа
Поддержка оплаты с карты
Возможность отключения 3DSНет
Поддержка рекуррентных платежейНет
Поддержка других способов оплаты (электронные деньги и др.)

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью SquareUp необходимо:

  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «SquareUp» и указать:
    • Данные для полей «Application ID», «Location ID», «Token» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
    • В поле «Адрес перехода после успешной оплаты» указать URL страницы, на которую будет произведен переход после успешной оплаты (используется только при оплате в личном кабинете на сайте).
    • В поле «Адрес перехода после ошибки оплаты» указать URL страницы, на которую будет произведен переход после неуспешной оплаты (используется только при оплате в личном кабинете на сайте).
  • Настроить в SquareUp адрес подтверждения оплаты на URL: http://smarty.example.com/billing/payment/squareup/process/ (оcуществляется на стороне платежного шлюза, вместо адреса smarty.example.com необходимо указать адрес вашего сервера Smarty).

Stripe

Возможность оплаты с ТВДа*
Возможность оплаты с мобильных устройствНет
Возможность оплаты в личном кабинетеДа
Поддержка оплаты с картыДа
Возможность отключения 3DSДа
Поддержка рекуррентных платежейДа
Поддержка других способов оплаты (электронные деньги и др.)Нет

* Поддерживается формирование QR-кода и показ его на экране телевизора, который ведёт на платёжную форму в WEB.

Настройка интеграции

Чтобы начать принимать платежи от абонентов с помощью Stripe необходимо:

  • В разделе «Биллинг» → «Платежные шлюзы» создать объект с типом «Stripe»:
    • Данные для полей «Публичный ключ» и «Приватный ключ» необходимо получить непосредственно у платежного шлюза после подписания договора с ним.
  • В личном кабинете Stripe в настройках вебхуков добавить адрес для нотификаций (Endpoint URL) вида https://example.smarty.com/billing/payment/stripe/validate_notify со следующими типами событий:

payment_method.attached
payment_intent.payment_failed
payment_intent.succeeded

  • Выбрать на странице «Общие настройки» → «Общие настройки Client» способ оплаты по умолчанию с помощью карты — Stripe.
  • Проверить работоспособность шлюза в виджете для интеграции с сайтом «Личный кабинет».

Дополнительные настройки

Настройка автоплатежа

Для настройки автоплатежа необходимо выполнить следующее:

  • Прописать в client.js опцию 'autopayment_enable': true
  • Добавить в крон команду make_autopayments

Каждый запуск команды будет проверять абонентов с сегодняшней датой деактивации или датой продления 30 дней назад и пытаться совершить платеж по сохраненной карте.

Создание виджета оплаты

Для создания и настройки виджета оплаты необходимо выполнить следующее:

  • В разделе «Настройки контента» → «Каталог приложений» создать приложение с типом «Виджет».
  • Нажать на поле «URL / Название / ID приложения» и из предложенных вариантов выбрать /templates/futuristic/default/apps/payment-widget/payment.widget.js
  • Поставить галочку в пункте «Показывать приложение в главном меню».
  • В разделе «Параметры доступности» отметить шаблоны и устройства, на которых должен отображаться виджет.
  • Сохранить.

Настройка оплаты по QR коду для нескольких серверов

Если архитектура сервиса подразумевает установку Smarty на несколько серверов, то все запросы, связанные с QR кодами, нужно обрабатывать на одном сервере. Чтобы это сделать, необходимо в конфигурационном файле Smarty в nginx прописать следующее:

location ~ /media/upload/tvmiddleware/qrcodes/ {

        uwsgi_pass server_name;

location ~ /tvmiddleware/api/payment/qrcode/ {

        uwsgi_pass server_name;

location ~ /api/tvmiddleware/api/payment/qrcode/ {

        uwsgi_pass server_name;

Вместо server_name нужно указать название или адрес сервера.

Примечание

На продакшн-среде Stripe работает только через https.