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


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



Клиентке шот-фактураны қалай жіберу керек
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 | (міндетті параметр) алушының идентификаторы - пайдаланушы, топ немесе арна идентификаторы |
| **!** title | (міндетті параметр) өнім атауы, 1–32 таңба |
| **!** description | (міндетті параметр) өнім сипаттамасы, 1–255 таңба |
| **!** currency | (міндетті параметр) төлем валютасы (**EUR**, USD, UAH және т.б.; толығырақ https://core.telegram.org/bots/payments#supported-currencies ) |
| prices |
Өнім мен қосымша қызметтердің (жеткізу, орау және т.б.) бағасы туралы мәліметтерді қамтитын массивтер массиві. Төлем бетінде көрсетіледі. Соманы бүтін сан (мысалы, 125) немесе нүкте арқылы ондық сан (мысалы, 120.25) ретінде көрсетуге болады.
Мысалы: [["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 | Жауап беру үшін хабарлама идентификаторы; егер шот-фактураны бөлек хабарлама ретінде жібергіңіз келсе, екі жалғыз тырнақшаны ('') пайдаланыңыз |
| reply_markup | Бірінші түймесі pay түріне орнатылған пернетақта |
| message_thread_id | Тақырып идентификаторы (форум функционалы қосылған супертоптар үшін қолжетімді) |
| provider_data | Төлем қызметінің провайдеріне жіберілетін JSON пішіміндегі шот-фактура деректері. Төлем жүйесі қажетті өрістердің егжей-тегжейлі сипаттамасын ұсынуы керек. |
МАҢЫЗДЫ! Барлық параметрлер функцияда көрсетілген ретпен берілуі керек. Егер белгілі бір параметрді көрсету қажет болса және басқаларын өткізіп жіберу қажет болса, қажет емес параметрлер үшін бос мәндерді немесе құжаттамада көрсетілген мәндерді қалдырыңыз.
Мысал:

Егер need_name, need_phone_number немесе need_email параметрлерінің кез келгені қосылған болса, пайдаланушы төлемді аяқтамас бұрын сол ақпаратты беруге шақырылады. Төлем сәтті болғаннан кейін деректер сәйкес клиенттік айнымалыларға сақталады.
Мысал:

Нәтиже: деректер төлемге дейін сұралады.
Төлем кері шақыруы
Егер төлем сәтті болса, пайдаланушының чатына келесі мазмұндағы кері шақыру жіберіледі:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa', мұнда
- course_pay - payload - бастапқы шот-фактураны жасау сұрауынан алынған жүктеме;
- 1372995196 - шот-фактура бастапқыда жіберілген чат идентификаторы;
- 120.75 - төлемнің жалпы сомасы;
- USD - валюта;
- 2ff747b9-000f-5000-b000-16d7e3517aa9 - сатушы жүйесіндегі төлем идентификаторы.

Сонымен қатар, егер пайдаланушының аты, телефон нөмірі және/немесе электрондық поштасы сұралған болса, сәйкес айнымалылар клиентке тағайындалады:
tg_payment_name, tg_payment_phone және tg_payment_email

Төлемнің сәтті болуы туралы кері шақыру пайдаланушының ботпен тікелей хабарламаларына жіберіледі.
Пайдаланушының төлем жасалғанға дейін ботпен бар чаты болуы керек (яғни, олар ботты бастаған немесе оған жазылған болуы керек). Әйтпесе, бот оларға тікелей хабарлама жібере алмайды.
Төлем веб-хукі алынғаннан кейін, төлем answerPreCheckoutQuery әдісі арқылы автоматты түрде расталады. https://core.telegram.org/bots/api#answerprecheckoutquery
Төлем түймесі бар бекітілген хабарлама
Төлем жүйесін қосқаннан кейін хабарламаны бекіту мүмкіндігін пайдалану керек.
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Функция параметрлері | Сипаттамасы |
|---|---|
| **!** platform_id | Telegram чат идентификаторы * |
| message_id | Бекітілетін хабарлама идентификаторы |
| disable_notification | Бұл параметр жаңадан бекітілген хабарлама туралы барлық чат мүшелеріне хабарландыру жіберу керектігін анықтайды. Арналар мен жеке чаттарда хабарландырулар әрқашан өшіріледі.
Хабарландыруларды өшіру үшін disable_notification параметрін 1 мәніне орнатыңыз; әйтпесе, 0 мәнін пайдаланыңыз. |
Мысал:
1-қадам:
prices = [["course", 100], ["VAT", 20.75]]
result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', '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-қадам:
Бірінші қадамның нәтижесінде сіз get() функциясын пайдаланып 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 on courses', 'Creating courses is super easy', 'USD', prices)

Мысал: пернетақта
prices = [["course", 100], ["VAT", 20.75]]
tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', '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"}]]}')
