Як підключити платіжну систему
Платіжна система вбудована в Telegram.
Для здійснення платежів у месенджері потрібно:
-
підключити платіжну систему до бота в BotFather
-
перейти до налаштувань потрібного бота та в меню вибрати Payments
-
дотримуючись інструкцій, підключити доступну платіжну систему та скопіювати виданий токен
<br>
Як виставити рахунок клієнту
Щоб надіслати рахунок у Telegram, використовуйте метод
tg_send_invoice(provider_token, platform_id, title, description, currency, prices, photo_url, payload, protect_content, disable_notification, need_name, phone_number, need_email, reply_to_message_id, reply_markup, reply_id) - обов'язкові параметри виділені жирним
provider_token - токен, отриманий у BotFather після підключення платіжної системи
platform_id - отримувач - ідентифікатор користувача, групи або каналу
title - назва товару, 1-32 символи
description - опис товару, 1-255 символів
currency - валюта платежу (RUB, USD, UAH тощо https://core.telegram.org/bots/payments#supported-currencies)
payload - перша частина монети про платіж, за замовчуванням tg_payment
prices - розбивка ціни (опис нижче)
photo_url - посилання на зображення товару
disable_notification - 1 - надіслати з повідомленням, 0 - без повідомлення
protect_content - 1 - захист від копіювання та скріншотів, 0 - без захисту
need_name - 1, якщо для завершення замовлення потрібне повне ім'я користувача, 0 - без запиту імені
need_phone_number - 1, якщо для завершення замовлення потрібен номер телефону користувача, 0 - без запиту номера
need_email - 1, якщо для завершення замовлення потрібна електронна адреса користувача, 0 - без запиту пошти
reply_to_message_id - ідентифікатор повідомлення, на яке відповідаємо, '' - не відповідь
reply_markup - клавіатура, перша кнопка має бути кнопкою з типом pay
Якщо вказано один із параметрів need_name, need_phone_number або need_email, користувач отримає запит на введення даних перед оплатою, і вони будуть збережені в змінних клієнта у разі успішної оплати. На скріншоті нижче показано запит на введення всіх даних:
prices - масив масивів з даними про вартість товарів та додаткових послуг (доставка, упаковка тощо). Відображається на сторінці оплати. Сума вказується або цілим числом 125, або дробом через крапку 120.25. Наприклад: [["товар", 2000], ["ПДВ", 20.75], ["упаковка", 100]
Зворотний виклик при оплаті
Після успішної оплати в чаті з користувачем надійде колбек такого вигляду:
phone_best 4737685 2120.75 UAH 1955518436
де phone_best - payload - із запиту на створення рахунку, 473737685 - chat id, на який спочатку було надіслано рахунок, 2120.75 - повна сума платежу, UAH - валюта, 1955518436 - ідентифікатор платежу в системі мерчанта
Також, якщо ви запитували ім'я, телефон та/або електронну пошту, клієнт запише змінні:
tg_payment_name, tg_payment_phone та tg_payment_email
У разі успіху колбек буде надіслано в особисті повідомлення користувача. Для цього клієнт і бот повинні взаємодіяти до оплати (клієнт має бути підписаний на бота)!
Після отримання хука про оплату платіж буде автоматично підтверджено за допомогою answerPreCheckoutQuery https://core.telegram.org/bots/api#answerprecheckoutquery.
Приклади
prices = [["product", 2000], ["NDS", 20.75], ["package", 100]]
result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'phoneW-200', 'Best Model on the Market', 'UAH', prices, 'https://images11.popmeh.ru/cropped.jpg', 'phone_best', 0, 0, 1, 0, 1)
Приклад з мінімальним набором параметрів
prices = [["an amazing product", 20000]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'The best bot ever!',`` 'An amazing course! Be the best!', 'UAH', prices)
Приклад з клавіатурою
prices = [["product", 2000], ["NDS", 20.75], ["package", 100]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Phone W-200', 'BEst Model on the Market', 'UAH', prices, 'https://helpix.ru/news/200405/181746/gf200_2.jpg', 'phone_best', 0, 0, 1, 1, 1, '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}], [{"text":"One more button", "callback_data": "One more button"}]]}')


