Т-банк
Прием платежей через интернет-эквайринг Тинькофф банка
Мы рады сообщить Вам о преимуществах подключения к Тинькофф по партнерской ссылке от Salebot-эквайринг :
Бесплатное подключение к интернет-эквайрингу Тинькофф.
Тинькофф предоставляет услуги эквайринга до 2,5%, что позволит Вам существенно сократить расходы на обработку платежей и полностью сосредоточиться на развитии и усовершенствовании Вашего проекта.
Обратите внимание, что предложение действует только по партнерской ссылке:
Обращаем внимание!
При подключении интеграции на стороне Salebot (в разделе "Платежные системы") без указания значений в полях "Ставка НДС" и "Система налогообложения" платежная система работать не будет.
В случае, если у вас уже подключена интеграция, введите значения в указанные поля, иначе все платежи будут приостановлены!
Как подключить
Вам необходимо создать новый терминал. Нельзя использовать тот, который у вас подключен еще куда-то.
Для подключения интернет-эквайринга Тинькофф в первую очередь нужно подать заявку и получить идентификатор терминала и пароль. Это можно сделать перейдя по ссылке.
После рассмотрения вашей заявки, вам выдадут тестовый терминал и пароль к нему.
Переходим в проект на salebot.pro и в разделе Платежные системы - Тинькофф прописываем ключи тестового терминала.
Обращаем внимание!
Без указания значений в полях "Ставка НДС" и "Система налоогобложения" платежная система работать не будет.
В случае, если у вас уже подключена интеграция, введите значения в указанные поля, иначе все платежи будут приостановлены!
Далее вам в личном кабинете Т-банка нужно пройти тесты на формирование ссылки, чека и оплаты с тестовых карт банка.
Как протестировать платежи на стороне Т-банка, написано здесь.
Вкратце - внутри бота нужно указать данные тестового терминала и с помощью тестовых карт провести оплату как покупатель. Данные терминала и данные тестовых карт будут находиться у каждого клиента на магазине. Тестирование платежей это своего рода настройка и проверка интеграции вашего бота с нами.
Для совершения повторного платежа обязательно необходимо обнулить payment_sum, ранее сформированную ссылку и уже после переназначить переменную payment_sum для получения свежей ссылки. Можно указать предыдущее значение.
Обратите внимание на Тест 3 (отмена платежа), вам нужен будет идентификатор платежа PaymentId, найти его можно после совершения платеж в переменной tinkoff_payment_id
Обращаем внимание!
Для корректной работы интеграции и отсутствия ошибок при подключении, после прохождения проверок (тестов) интеграции необходимо ПЕРЕПОДКЛЮЧИТЬ Тинькофф на работающий терминал.
Как сформировать ссылку на оплату
Сформировать ссылку на оплату в блоке можно ОДНИМ ИЗ из доступных способов:
Создание ссылки с помощью переменной payment_sum и дополнительных параметров (устаревшая работающая версия)
Кнопка с функцией Оплата
Ссылку на оплату можно создавать в кнопке с функцией "Оплата". О том как создавать такую кнопку рассказано в этой статье:
Рассмотрим все возможные параметры данной кнопки. О том как создавать кнопку с функцией Оплата рассказано в этой статье:
Обязательные параметры кнопки Оплата для Тинькофф
Для формирования ссылки на оплату в настройках кнопки необходимо указать обязательные параметры: Сумма и Описание товара.
поле Текст. Данный текст будет указан на кнопке с ссылкой на оплату в сообщении
поле Функция. Для создания кнопки для выдачи ссылки на оплату выбираем функцию Оплата
поле Платежная система. В списке отображаются подключенные к проекту платежные системы. Выбираем Tinkoff
Если к проекту не подключены платежные системы данный тип кнопок будет не доступен
поле Описание товара (обязательное). В данном поле нужно указать название товара. Максимально количество символов для данного поля: 250 Чем точнее указано описание товара, тем лучше. Например: не Телефон, а Смартфон Xiaomi модель
НЕЛЬЗЯ использовать двойные кавычки в описании товара: удалите или замените на одинарные кавычки.
поле Сумма (обязательное). В этом поле указываем стоимость товара.
чекбокс Автоплатеж. Для подключения автоплатежа включите в настройках платежной системы в Сейлбот ползунок и поставьте галочку в данном чек-боксе в настройке кнопки. По умолчанию, отключен. Про настройки для автоплатежей можно почитать в этой статье:
меню Данные для формирования чека. При клике по данной кнопке откроются дополнительные обязательные и необязательные поля для формирования чека
Многие платежные системы поддерживают облачные онлайн-кассы, они необходимы по 54-ФЗ. Прочитайте особенности формирования чеков на сайте выбранной платежной системы, чтобы не попасть в неловкую ситуацию с налоговой инспекцией.
Наименование товара
Цена за единицу товара в копейках
Количество
Произведение количества на цену за единицу товара
Ставка НДС
Способ расчёта
Предмет расчета
Система налогообложения
Переменная с email покупателя
Переменная с номером телефона покупателя
меню Дополнительная информация. При клике по данной кнопке откроются дополнительные поля для формирования ссылки
Язык страницы оплаты
чекбокс С уведомление о клике. Для отслеживания перехода по ссылке для оплаты можно поставить галочку. В таком случае, при клике по кнопке в диалог с клиентом в Сейлбот придет уведомление о том, что был совершен переход по ссылке
На данное уведомление можно настраивать дальнейшую логику работы бота.
Дополнительные параметры для формирования чека и ссылки
выпадающее меню "Данные для формирования чека"
поле Наименование товара . В данном поле нужно указать название товара. Чем точнее указано название товара, тем лучше. Например: не Телефон, а Смартфон Xiaomi модель ххх
НЕЛЬЗЯ использовать двойные кавычки в Наименовании товара: удалите или замените на одинарные кавычки.
поле Цена за единицу товара в руб. Обратите внимание, в данном поле указывается цена в рублях.
поле Количество. Количество или вес товара. Передать можно целое или дробное число через точку. Пример, 5 или 10.3
поле Произведение количества на цену за единицу товара. В данном поле необходимо указать сумму равную произведению количества на цену за единицу товара. Например, если Цена за единицу товара в руб равна 5000 и количество товаров 1, то Сумма заказа 5000 руб,
поле Ставка НДС. Необходимо указать подходящий код для передачи значения НДС. Например, none если без НДС или vat0 если ставка НДС 0% .
поле Способ расчёта. Можно передать одно из значений признака способа расчета:
поле Предмет расчёта. Дополнительно можно передать предмет расчета (если не передать, будет commodity (товар)).
Может принимать следующие значения:
поле Система налогообложения. Можно выбрать систему налогообложения, которая будет передана в чеке.
Поле Переменная с email покупателя (необязательный, если передан Номер телефона) В данном поле указывается Email пользователя (клиента). Можно указывать переменную, в которой хранится email пользователя.
Например, #{email}
Поле Переменная с номером телефона покупателя (необязательный, если передан Email). В данном поле можно указать переменную, в которой записан номер телефона покупателя в формате 79000000000 Например, #{phone}
Обязательно должен присутствовать email и/или телефон
выпадающее меню "Дополнительная информация"
поле Язык страницы оплаты. По умолчанию, язык страницы оплаты русский. Можно изменить на английский
Переменные клиента, которые будут созданы автоматически при использовании кнопки с функцией Оплата
Как только пользователь получит блок с кнопкой "Оплата" автоматически будут созданы переменные клиента:
Служебная переменная клиента __payments
, которая хранит сумму, идентификатор созданной ссылки, нужна для идентификации хука от платежной системы.
Служебную переменную клиента __payments НЕЛЬЗЯ удалять или изменять!
Переменная клиента error_payment_button
создается, если при формировании кнопки возникла ошибка.
В значение переменной error_payment_button запишется либо текст ошибки, либо ответ платежной системы с ошибкой.
Значение переменных становятся актуальными при переходе в следующий блок
Страницы завершения оплаты
После завершения оплаты клиенту по умолчанию будет предложено перейти обратно в чат с ботом. При этом клиент узнаёт о статусе платежа только по сообщению в чате.
Обычно содержание такого сообщения формируется в зависимости от типа колбека, который вы получили от Тинькофф Касса.
Иногда колбек приходит с задержкой, поэтому в таких случаях у вас не получится моментально информировать клиента.
Чтобы избежать подобных ситуаций, отключите функцию перехода в бот в оплатах по ссылкам, сформированным через:
переменную payment_sum - перед указанием payment_sum, присвойте переменной apply_redirects значение 0 (ноль);
функцию get_tinkoff_payment_url - последним параметром укажите значение 0 (ноль);
При отключенной функции Тинькофф использует свои страницы завершения оплаты с информацией об успешном или неудавшемся платеже клиента.
Обработав колбек, вы можете дополнительно сообщить клиенту о статусе его платежа.
Как обработать результат
Успешный платеж.
в бота АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _success и через пробел сумма платежа. Для использования в настройках схемы достаточно его скопировать.
Например: ovg58keefc_success 44
, где:
ovg58keefc : первые первые 10 символов секретного ключа платежной системы
_success : результат обработки запроса (успешный платеж)
44 : сумма платежа
Колбеки (уведомления) от платежной системы пользователь НЕ ВИДИТ. Они отображаются только во вкладке Клиенты и видны оператору.
Пример использования: Шаг 1. В блоке "с кнопкой Оплата" добавляем кнопки с функцией Оплата.
Шаг 2. В поле Условие соединения от этого блока к блоку "Успешная оплата" указываем колбэк. Аналогично работает, если указать колбэк об успешной оплате в поле Условие блока Первостепенной проверки условия.
Важно: выбор соответствия Полное совпадение. Также можно использовать По наличию ключевых слов, если указать часть колбэке без сумм оплаты
Платеж с ошибкой
При ошибке проведения оплаты в бота АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _fail и через пробел сумма платежа
Например, ovg58keefc_fail 44
, где
ovg58keefc
: 10 символов секретного ключа платежной системы
_fail
: результат обработки запроса - платеж не выполнен или с ошибкой.
44
: сумма платежа
Зависит от платежной системы. Не все платежные системы присылают колбэк об ошибке платежа.
Если сумма указанная в настройках кнопки отличается от суммы, которую клиент оплатил, то АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _different_amounts и через пробел уникальный ID платежа
Например: ovg58keefc_different_amounts 123456
, где:
ovg58keefc
: 10 символов секретного ключа платежной системы
_different_amounts
: результат обработки запроса (сумма оплаты отличается от суммы в ссылке)
123456
: уникальный ID платежа
Функция get_tinkoff_payment_url в Калькуляторе
Для формирования ссылки на оплату можно воспользоваться функцией get_tinkoff_payment_url
в Калькуляторе блоке.
В поле Калькулятор переменной присвоим значение функции get_tinkoff_payment_url
Название переменной задаете самостоятельно. На скринах примеры названия переменных.
В эту переменную запишется ссылка на оплату. Переменную можно вывести на экран ссылкой в сообщении или разместить в кнопке с текстом, например, "Оплатить".
ПРИМЕР ссылки на оплату: https://securepay.tinkoff.ru/new/xoYnWrb6
Многие платежные системы поддерживают облачные онлайн-кассы, они необходимы по 54-ФЗ. Прочитайте особенности оформления чеков на сайте выбранной платежной системы, чтобы не попасть в неловкую ситуацию с налоговой инспекцией.
Пример 1:
Пример 2:
Переменную можно вывести на экран ссылкой в сообщении или разместить в кнопке с текстом, например, "Купить".
Если в блоке несколько функций для получения ссылки и допущена ошибка, то значение ошибки будет записано в переменной error_payment_func
Ошибка запишется по последней функции в Калькуляторе.
После успешной оплаты в бота АВТОМАТИЧЕСКИ придет КОЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _success и через пробел сумма платежа. Для использования в настройках схемы достаточно его скопировать.
Например: ovg58keefc_success 44
, где:
ovg58keefc : первые первые 10 символов секретного ключа платежной системы
_success : результат обработки запроса (успешный платеж)
44 : сумма платежа
Сплитование платежей в Тинькофф и работа с ними
Для старта работы нам потребуется выполнить четыре шага: 1. Переходим по ссылке: https://www.tinkoff.ru/kassa/industries/marketplace/ 2. Оставляем заявку менеджеру и ожидаем связи от него. 3. Заключаем договор с банком и запрашиваем в банке логин и пароль 4. Получаем токен через функцию tinkoff_sm_register_get_token() tinkoff_sm_register_get_token(username, password, test) - функция токена Функция принимает три параметра: Обязательные параметры: username - логин password - пароль Необязательный параметр: test - параметр на случай если проводите настройки в тестовой среде, в параметр можно передать 1 и запрос будет отправлен в тестовую среду. Если не используете такой тип настройки, проигнорируйте данный параметр НЕ указывая его в функции.
ВАЖНО! Если у вас возникают сложности на этапе получения токена, то добавьте список IP адресов salebot в белый лист, запросить адреса можно в службе поддержки на сайте или мессенджере. После того как вы получили токен, необходимо сделать запрос на регистрацию точки с указанием всех необходимых параметров, включая данные банка и лицевого счета (счета физлиц не поддерживаются) через функцию tinkoff_sm_register_get_shop_code в ответ приходит помимо прочего "shopCode", который необходим для дальнейшей работы. tinkoff_sm_register_get_shop_code(token, org_data, address, ceo, bank_acc) token - полученный на шаге выше токен org_data - словарь с данными о вашей организации (вид показан в примере ниже) address - юридический адрес организации ceo - данные владельца организации bank_acc - реквизиты Пример использования функции:
При формировании ссылки на оплату указываете переменную, сформированную по принципу:
shop="Shops":[{"ShopCode":"????????","Amount": "1000"}]
link=get_tinkoff_payment_url(10,'', '', '','+79099999999','','', 1, '', shop)
в переменной shop поле Amount содержит сумму в копейках, которая будет отправлена этому продавцу. Нужно чтобы сумма в первом параметре функции была не меньше, чем сумма по всем получателям.
Для указания нескольких получателей указываем так:
shop="Shops":[{"ShopCode":"???????1","Amount": "1000"},{"ShopCode":"???????2","Amount": "2000"}]
в данном примере общая сумма 30 рублей или 3000 копеек
Создание ссылки с помощью переменной payment_sum и дополнительных параметров
В калькуляторе блока присваиваем переменной payment_sum значение равно сумме к оплате.
Например,
payment_sum = 150
или
payment_sum = 100.55
(через точку!)).
Сразу после этого появится переменная tinkoff_pay_url. Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить".
ПРИМЕР ссылки на оплату: https://securepay.tinkoff.ru/new/xoYnWrb6
Также В Калькуляторе блока до установки значения переменной payment_sum, можно задать следующие необязательные переменные, для настройки платежа.
payment_description – описание заказа
language - Язык страницы оплаты en, ru. Если не передан, то страница оплаты на русском языку.
expiration_date - дата и время окончания жизни заказа. Формат: дд.мм.гггг чч:мм (например: 25.01.2021 12:23) По умолчанию 24 часа;
apply_redirects - индикатор необходимости перенаправить клиента в бота после нажатия на кнопку "Оплатить". Ожидаемые значения 0 (ноль) или 1 (один, по умолчанию): 0 (ноль) - оставить клиента в виджете оплаты, применяются стандартные страницы завершения платежа Тинькофф Касса; 1 (один) - немедленно перенаправить в бота после нажатия на кнопку "Оплатить". О статусе платежа можно сообщить в ответ на колбек.
Также можно использовать стандартные переменные, например зададим время действия ссылки 2 дня от текущей даты до 12:00:
date = current_date + 2
expiration_date = "#{date} 12:00"
Еще пример время действия ссылки 30 минут:
time = current_time + 30
expiration_date = "#{current_date} #{time}"
Если в настройках вы включили автоматические платежи, то после успешной оплаты у клиента появится переменные tinkoff_rebill_id и tinkoff_recurrent_id, которые нужны для проведения автоплатежей и идентификации вебхука. Удалять их нельзя, при удалении tinkoff_rebill_id невозможно будет провести автоплатеж и нужно заново формировать ссылку на оплату, при удалении tinkoff_recurrent_id - клиент не получит колбек об оплате.
Нельзя удалять tinkoff_rebill_id и tinkoff_recurrent_id.
При удалении tinkoff_rebill_id невозможно будет провести автоплатеж и нужно заново формировать ссылку на оплату, при удалении tinkoff_recurrent_id - клиент не получит колбек об оплате.
Обратите внимание: переменной payment_sum присваивается значение последней, после необязательных переменных payment_description, language и т.д.
Пример формирования ссылки на оплату
Создадим ссылку на оплату в размере 100р (в магазине по умолчанию рубль)
Обратите внимание: - Сначала указываете необязательные параметры payment_description и т.д. - И последней присваиваем значение переменной payment_sum
Далее в нужном месте нужно вывести переменную tinkoff_pay_url, в которой содержится ссылка.
Как обработать результат
После успешной оплаты в бот придут колбеки, по которым вы сможете понять что была успешная оплата. Эти колбеки в системе вы видите как сообщения от пользователя, чтобы их не мог отправить пользователь, они состоят из 10 первых символов секретного ключа и приписки success, например: 869e5us32x_success
В случае неудачной оплаты, придет колбек с припиской 869e5us32x_fail
Эти колбеки НЕ ВИДИТ пользователь, они отображаются только оператору.
Колбеки от Тинькофф Касса могут приходить с задержкой.
Если в течение часа вам не пришёл колбек, пожалуйста, обратитесь в поддержку salebot.
Тип сравнения должен быть "Полное совпадение"
Также после успешной оплаты переменная tinkoff_payment_completed устанавливается в True.
Например, можно сделать обработку успешной оплаты блоком с условием и вывести соответствующее сообщение пользователю:
После завершения оплаты клиенту добавится переменная tinkoff_callback_data, содержащая данные ответа платежной системы по совершенной операции. Из полученного словаря можно извлечь необходимые данные при помощи метода get.
Как работать с чеками
Для формирования чека онлайн-кассы необходимо при формировании ссылки на оплату передать дополнительные параметры.
Обязательные параметры:
email — электронная почта пользователя (Необязателен, если передан параметр phone)
phone — телефон пользователя. Указывается в формате ITU-T E.164, например 79000000000 (Необязателен, если передан параметр email)
taxation — система налогообложения:
osn — общая usn_income — упрощенная (доходы) usn_income_outcome — упрощенная (доходы минус расходы) patent — патентная envd — единый налог на вмененный доход esn — единый сельскохозяйственный налог
products_for_receipt - это массив с перечисленными товарами чека, следующего вида:
[{"name": "Наименование товара", "quantity": "Количество товара", "price": "Цена за единицу товара в копейках", "amount": "Стоимость товара в копейках", "tax": "Ставка НДС"}, {"name": "Наименование товара 2", "quantity": "Количество товара 2", "price": "Цена за единицу товара 2 в копейках", "amount": "Стоимость товара в копейках", "tax": "Ставка НДС"}]
Каждый товар имеет вид:
{"name": "Наименование товара", "quantity": "Количество товара", "price": "Цена за единицу товара в копейках", "amount": "Стоимость товара в копейках", "tax": "Ставка НДС"}
name - Наименование товара
quantity - Количество или вес товара (целое или дробное число через точку)
price - Цена за единицу товара в копейках
amount - Стоимость товара в копейках. Произведение Quantity и Price
tax - cтавка НДС:
Дополнительно можно передать предмет расчета payment_object (если не передать, будет commodity (товар)), может принимать следующие значения:
После определения переменных платежа, определяем переменную payment_sum, после которой сразу появится ссылка на оплату.
Общая стоимость всех товаров должна быть равной переменной payment_sum в рублях!
Пример:
[{"name": "Наименование товара", "quantity": "2", "price": "1000", "amount": "2000", "tax": "none"}, {"name": "Наименование товара 2", "quantity": "3", "price": "500", "amount": "1500", "tax": "none"}]
Как сделать автоплатежи в Тинькофф
Провести тестовые платежи
В личном кабинете Тинькофф нужно пройти тесты подключения автоплатежей с тестовых карт банка.
Чтобы пройти тесты подключения автоплатежей:
1. Создаём ссылку на оплату get_tinkoff_payment_url.
В параметре recurrent передайте значение равное 1, пример кода есть в описании функции
2. Оплачиваем ее тестовой картой из Тест №5, приходит уведомление от платежной системы об успешной оплате.
3. Для этого же клиента вызываем функцию рекуррентного платежа tinkoff_recurrent_payment.
4. В кабинете Тинькофф нажимаем Проверить. Тесты пройдены
Провести установочный платеж
Для создания ссылки на первый установочный платеж можно воспользоваться функцией get_tinkoff_payment_url
в Калькуляторе блоке.
Важный параметр данной функции для проведения установочного платежа
recurrent.
Если автоплатеж включен, то передайте значение 1, если отключен передайте значение None или ""
После успешной оплаты придет уведомление (callback), а у клиента появится переменная tinkoff_rebill_id. Эта переменная нужна для повторных автосписаний. Если её удалить, то повторные автосписания провести не получится.
Провести повторный автоплатеж
От блока, который реагирует на колбэк об успешной оплате создаем стрелку с таймером (задержкой) через какой период необходимо повторить списание.
Будьте внимательны и настройте возможность отменить подписку,чтобы случайно не списать с карты пользователя все средства.
Далее для проведения автоплатежа, нужно вызвать функцию:
tinkoff_recurrent_payment(сумма, 'описание')
Первым параметром передаем сумму, которую нужно списать, вторым - описание платежа, если не передать, то будет пустое.
Если подключена онлайн-касса, то при автосписании нужно формировать чек. Чтобы это сделать, перед списанием нужно создать переменные:
Как заполнять products_for_receipt_recurrent читайте в параграфе выше "Функция get_tinkoff_payment_url в Калькуляторе".
Отменить автоплатежи
Для того, чтобы отменить автосписания настроим блок для удаления переменной tinkoff_rebill_id
Провести обычный платеж, если включены рекуррентные платежи.
Если в настройках включен бегунок рекуррентные платежи, но нужно провести обычный платеж без сохранения карты для подписки, присвойте переменной tinkoff_manual_recurrent_disable
любое значение перед объявлением payment_sum.
При таких настройках платеж будет обычным.
Пример:
tinkoff_manual_recurrent_disable = 1
Если при автосписании нужен чек, то до вызова функции нужно определить переменную products_for_receipt_recurrent, которая заполняется так же как и для чеков в обычном платеже.
Прием платежей для курсов через Тинькофф Эквайринг
Шаг 1. В платежных системах подключаем прием платежей через Тинькофф Эквайринг
Шаг 2. В настройках курса выбираем платежную систему
Шаг 3. Подключаем "Оплата через Тинькофф"
Шаг 4. Создаем тариф
Шаг 5. В личном кабинете Тинькофф в настройках терминала обязательно включаем уведомления по HTTP и вставляем ссылку: https://chatter.salebot.pro/tinkoff_callback/result
Обращаем внимание!
Пропуск 5 шага приведет к некорректной работе интеграции! Пожалуйста, ВКЛЮЧАЙТЕ уведомления по HTTP и ВСТАВЬТЕ ссылку в соответствующее поле URL (ссылка для уведомлений): https://chatter.salebot.pro/tinkoff_callback/result
Также после прохождения всех проверок и тестирования корректной работы платежной системы, не забывайте ПЕРЕПОДКЛЮЧАТЬ платежную систему на РАБОЧИЙ терминал!
ГОТОВО. При оплате будете видеть виджет такого вида:
Сервис "Онлайн-чеки": как оптимизировать расходы бизнеса?
Оптимизация расходов бизнеса - безусловно то, к чему стремится любой предприниматель. Подсчет расходов и полученных доходов часто наводят на мысль о том, как можно увеличить фактическую прибыль и уменьшить затраты.
В этом может помочь официальный партнер Тинькофф - Бизнес.ру: с помощью сервиса "Онлайн-чеки" вы получите возможность подключить кассу к сайту для приема платежей, безлимитный пакет чеков и поддержку на всех этапах фискализации - все это от 800 р/месяц.
Чтобы подключить онлайн-кассу от Тинькофф на сервисе Бизнес.ру, переходите по ссылке.
Last updated