Төлем провайдерін қосу жолы
Telegram-да кіріктірілген төлем жүйесі бар. Telegram ішінде төлемдерді қабылдау үшін сізге:
- BotFather арқылы ботыңызға төлем провайдерін қосу керек.
- BotFather-де бот параметрлерін ашып, Payments таңдаңыз.


Қолжетімді төлем провайдерлерінің бірін қосу үшін нұсқауларды орындаңыз, содан кейін жасалған провайдер токенін көшіріңіз.



Шот-фактураны қалай жіберуге болады
Telegram-да шот-фактураны жіберу үшін келесі функцияны пайдаланыңыз:
tg_send_invoice(
provider_token,
platform_id,
title,
description,
currency,
prices,
photo_url,
payload,
protect_content,
disable_notification,
need_name,
need_phone_number,
need_email,
reply_to_message_id,
reply_markup,
message_thread_id,
provider_data
)
| Параметр | Сипаттама |
|---|---|
| provider_token | Міндетті. Төлем провайдерін қосқаннан кейін BotFather-дан алынған провайдер токені. |
| platform_id | Міндетті. Алушының идентификаторы (пайдаланушы, топ немесе арна ID). |
| title | Міндетті. Өнімнің атауы (1–32 таңба). |
| description | Міндетті. Өнімнің сипаттамасы (1–255 таңба). |
| currency | Міндетті. Төлем валютасы (мысалы: EUR, USD, UAH). Қолдау көрсетілетін валюталар тізімін қараңыз: https://core.telegram.org/bots/payments#supported-currencies |
| prices | Шот-фактура элементтерін сипаттайтын массив. Әрбір элемент атау мен сомадан тұрады. Сомалар бүтін сандар немесе ондық сандар болуы мүмкін. Мысал: [["Product", 2000], ["VAT", 20.75], ["Packaging", 100]]
|
| photo_url | Өнім суретінің URL мекенжайы. |
| payload | Төлем кері шақыруында қайтарылатын теңшелетін жүктеме. Әдепкі: tg_payment. |
| protect_content |
1 — мазмұнды көшіруден және скриншоттардан қорғау.0 — қорғау жоқ. |
| disable_notification |
1 — үнсіз жіберу.0 — хабарландырумен жіберу. |
| need_name |
1 — тұтынушының толық атын сұрау.0 — сұрамау. |
| need_phone_number |
1 — тұтынушының телефон нөмірін сұрау.0 — сұрамау. |
| need_email |
1 — тұтынушының электрондық пошта мекенжайын сұрау.0 — сұрамау. |
| reply_to_message_id | Жауап беру үшін хабарлама ID. Шот-фактураны бөлек хабарлама ретінде жіберу үшін '' пайдаланыңыз. |
| reply_markup | Пернетақта конфигурациясы. Бірінші түйме pay түрінде болуы керек. |
| message_thread_id | Форум қосылған супертоптар үшін тақырып ID. |
| provider_data | Провайдерге тән төлем деректері бар JSON нысаны. Қажетті өрістер үшін төлем провайдерінің құжаттамасын қараңыз. |
Маңызды
Параметрлер жоғарыда көрсетілген дәл ретпен берілуі керек.
Қосымша параметрлерді өткізіп жіберу қажет болса, оларды бос қалдырыңыз немесе құжаттамада сипатталған әдепкі мәндерді беріңіз.
Мысал

Егер келесі параметрлердің кез келгені қосылған болса:
need_nameneed_phone_numberneed_email
Telegram төлем алдында тұтынушыдан сұралған ақпаратты сұрайды.
Сәтті төлемнен кейін жиналған ақпарат тиісті клиент айнымалыларына автоматты түрде сақталады.
Мысал:

Төлем кері шақыруы
Сәтті төлемнен кейін Telegram ботқа келесі кері шақыруды жібереді:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9
Мұндағы:
-
tg_payment— шот-фактураны жасау кезінде көрсетілген жүктеме мәні. -
1372995196— шот-фактура бастапқыда жіберілген чат ID. -
120.75— төлем сомасы. -
USD— төлем валютасы. -
2ff747b9-000f-5000-b000-16d7e3517aa9— төлем провайдері қайтарған төлем ID.

Егер тұтынушы ақпараты сұралған болса, келесі клиент айнымалылары да автоматты түрде толтырылады:
tg_payment_nametg_payment_phonetg_payment_email

Төлем кері шақыруы пайдаланушының ботпен жеке чатына жіберіледі.
Пайдаланушы төлем жасамас бұрын ботпен әңгімені бастаған болуы керек. Әйтпесе, Telegram кері шақыру хабарламасын жеткізе алмайды.
Төлем вебхукін алғаннан кейін MaviBot
answerPreCheckoutQueryәдісін пайдаланып төлемді автоматты түрде растайды.
Шот-фактура хабарламасын бекіту
Төлем провайдерін қосқаннан кейін шот-фактура хабарламасын бекітуге болады.
Функцияны пайдаланыңыз:
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Параметр | Сипаттама |
|---|---|
| platform_id | Telegram чат ID. |
| message_id | Бекітілетін хабарламаның ID. |
| disable_notification | Telegram-ның бекітілген хабарлама туралы хабарландыру жіберетінін басқарады.1 — хабарландыру жоқ.0 — хабарландыруды жіберу.Жеке чаттар мен арналарда хабарландырулар әрқашан өшіріледі. |
Мысал
1-қадам
prices = [["Course", 100], ["VAT", 20.75]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'Creating courses is easy',
'USD',
prices,
'https://salebot.pro/promo.png',
'course_pay',
'0',
'0',
'1',
'1',
'1',
'',
'{"inline_keyboard":[[{"text":"Pay","pay":"True"}]]}'
)
2-қадам
Жауаптан message_id мәнін алыңыз:
res = get(result, 'result')
m_id = get(res, 'message_id')

Содан кейін хабарламаны бекітіңіз:
tg_pin_chat_message(#{platform_id}, #{m_id}, 1)
Мысал: ең аз қажетті параметрлер
prices = [["Super course", 100]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'Creating courses is super easy',
'USD',
prices
)

Мысал: ішкі пернетақтасы бар шот-фактура
prices = [["Course", 100], ["VAT", 20.75]]
tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'Creating courses is easy',
'USD',
prices,
'https://mavibot.ai/promo.png',
'course_pay',
'0',
'0',
'1',
'1',
'1',
'',
'{"inline_keyboard":[[{"text":"Pay","pay":"True"}],[{"text":"Another button","callback_data":"Another button"}]]}'
)
