Төлем провайдерін қосу жолы

Telegram-да кіріктірілген төлем жүйесі бар. Telegram ішінде төлемдерді қабылдау үшін сізге:

  1. BotFather арқылы ботыңызға төлем провайдерін қосу керек.
  2. 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_name
  • need_phone_number
  • need_email

Telegram төлем алдында тұтынушыдан сұралған ақпаратты сұрайды.

Сәтті төлемнен кейін жиналған ақпарат тиісті клиент айнымалыларына автоматты түрде сақталады.

Мысал:

Төлем кері шақыруы

Сәтті төлемнен кейін Telegram ботқа келесі кері шақыруды жібереді:

tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9

Мұндағы:

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

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

  • tg_payment_name
  • tg_payment_phone
  • tg_payment_email

Төлем кері шақыруы пайдаланушының ботпен жеке чатына жіберіледі.

Пайдаланушы төлем жасамас бұрын ботпен әңгімені бастаған болуы керек. Әйтпесе, Telegram кері шақыру хабарламасын жеткізе алмайды.

Төлем вебхукін алғаннан кейін MaviBot answerPreCheckoutQuery әдісін пайдаланып төлемді автоматты түрде растайды.

https://core.telegram.org/bots/api#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"}]]}'
)