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

telegramPayment и telegramPaymentPrecheckout

Типы ответов telegramPayment и telegramPaymentPrecheckout используются для настройки оплаты за предоставляемые товары или услуги в канале Telegram.

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

telegramPayment

Используется для вывода формы оплаты в сообщении бота.

Свойства

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

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

Чтобы принимать платежи от клиентов, необходимо получить уникальный токен платежной системы и указать его в свойстве providerToken. Прежде чем получить токен платежной системы, нужно создать бота на стороне Telegram. Выполните шаги, описанные в статье 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.

Синтаксис

{
"type": "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"
}

telegramPaymentPrecheckout

Используется для обработки события telegramPrecheckoutEvent, когда Telegram отправляет данные для проверки статуса товара.

Свойства

СвойствоТипОписаниеОбязательный
precheckoutIdСтрокаИдентификатор, который отправляет Telegram.Да
successЛогическийМожно ли проводить оплату.Да

Синтаксис

{
"type": "telegramPaymentPrecheckout",
"precheckoutId": $request.query,
"success": true
}