Перейти к основному содержимому

TelegramPayment

Действие TelegramPayment позволяет настроить оплату через Telegram.

подсказка
Если вы хотите проводить оплату в Telegram без тегов действий, но из вставок JavaScript-кода, используйте ответы с типом telegramPayment в $response.replies.

Параметры

ПараметрТипОписаниеКомментарииОбязательный
providerTokenСтрокаТокен платежной системыДля каждой платежной системы необходимо получить уникальный токен на стороне Telegram.Да
startParameterЛогическийРазрешать ли клиенту пересылать ссылку на оплату другим клиентамtrue — другие клиенты смогут оплатить товар или услугу по ссылке.
false — другие клиенты не смогут оплатить товар или услугу по ссылке. Они будут перенаправлены на диалог с ботом.
Да
paymentTitleСтрокаНазвание товара или услугиДопустимо не более 32 символов.Да
descriptionСтрокаОписание товара или услугиДопустимо не более 255 символов.Да
imageUrlСтрокаСсылка на изображениеИзображение товара или услуги, которое будет отображаться в форме оплаты.Нет
amountСтрокаЦена товара или услугиTelegram устанавливает ограничения на минимальную и максимальную цену товара или услуги.
Допустимо не более 12 цифр.
Чтобы отделять десятичную часть от целой, используйте точку.
Да
currencyСтрокаВалютаТрехбуквенный код валюты, соответствующий ISO 4217.
Вы можете использовать только те валюты, которые поддерживают Telegram и ваша платежная система.
Да
invoicePayloadСтрокаПроизвольные данные для счета-фактурыДанные не будут отображаться в диалоге с клиентом. Их увидит только владелец кассы.Да
precheckoutEnabledЛогическийПроверка наличия товара перед оплатойtrue — перед оплатой бот будет посылать запросы на URL-адрес сервиса, который указан в поле precheckoutUrl.
Если товара нет в наличии и сервис вернет ответ с HTTP-кодом, отличным от 2xx, то бот перейдет в errorState.
false — бот не будет проверять наличие товара перед оплатой.
Нет
precheckoutUrlСтрокаURL-адрес сервиса, который возвращает информацию о наличии товараНет
okStateСтрокаСтейт, в который перейдет диалог, если оплата прошла успешноНет
errorStateСтрокаСтейт, в который перейдет диалог, если параметры тега заполнены некорректноСценарий перейдет в указанный стейт, если, например, был указан невалидный токен или цена меньше минимального допустимого значения.Нет
catchAllStateСтрокаСтейт, в который перейдет диалог, если клиент не сможет оплатить счет и отправит произвольное сообщение ботуНет

Получение токена платежной системы

Чтобы принимать платежи от клиентов, необходимо получить уникальный токен платежной системы и указать его в параметре providerToken. Прежде чем получить токен платежной системы, нужно создать бота на стороне Telegram. Выполните шаги, описанные в статье Telegram как входящий канал, и вернитесь к этой статье.

  1. Откройте Telegram и в поиске контактов введите BotFather.
  2. Отправьте команду /mybots в чат с BotFather.
  3. Выберите бота и нажмите Payments.
  4. Выберите платежную систему из списка.
  5. Выберите один из вариантов подключения:
    • Test для тестирования платежей.
    • Live для настройки реальной интеграции с платежной системой.
  6. Откроется диалог с ботом для выбранной вами платежной системы. Запустите бота.
  7. Выполните все шаги, о которых вас попросит бот платежной системы.
  8. Вернитесь в чат с BotFather.
  9. В последнем сообщении от BotFather вы увидите список подключенных платежных систем к боту и токены для них. Скопируйте нужный токен.
  10. Вставьте скопированный токен в параметр providerToken.

Ограничения на цену

Telegram устанавливает ограничения для каждой валюты на минимальную и максимальную цену товара или услуги. Она должна примерно соответствовать лимиту 1–10 000 USD. Для каждой валюты, кроме USD, эти лимиты зависят от актуальных обменных курсов и могут меняться со временем.

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

Пример использования

state: TelegramPayment
intent!: /Купить билет
TelegramPayment:
providerToken = {{$secrets.get("providerToken")}}
startParameter = true
paymentTitle = Она
description = Кинотеатр «Аврора», 25 декабря, 12:00
imageUrl = https://upload.wikimedia.org/wikipedia/en/4/44/Her2013Poster.jpg
amount = 400
currency = RUB
invoicePayload = 197110, Санкт-Петербург, ул. Большая Зеленина, 24, стр. 1
okState = /TelegramPayment/PaymentSuccessful
errorState = /TelegramPayment/PaymentFailed
catchAllState = /TelegramPayment/CatchAll

state: PaymentSuccessful
a: Оплата прошла успешно. Мы выслали ваш билет на указанный email. До встречи в эфире!
go!: /SendTickets

state: PaymentFailed
a: Возникли неполадки. Пожалуйста, напишите нам на client@just-ai.com, чтобы купить билет.

state: CatchAll
a: Платеж не прошел. Проверьте, пожалуйста, правильность введенных данных и повторите попытку.
go!: /TelegramPayment

Когда в ходе диалога клиент перейдет в стейт TelegramPayment, в чате появится следующее сообщение:

Оплата в Telegram