So verbinden Sie einen Zahlungsanbieter
Telegram verfügt über ein integriertes Zahlungssystem. Um Zahlungen in Telegram zu akzeptieren, müssen Sie:
- Über BotFather einen Zahlungsanbieter mit Ihrem Bot verbinden.
- Öffnen Sie die Bot-Einstellungen in BotFather und wählen Sie Payments.


Folgen Sie den Anweisungen, um einen der verfügbaren Zahlungsanbieter zu verbinden, und kopieren Sie dann das generierte Anbieter-Token.



So senden Sie eine Rechnung
Um eine Rechnung in Telegram zu senden, verwenden Sie die folgende Funktion:
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
)
| Parameter | Beschreibung |
|---|---|
| provider_token | Erforderlich. Vom BotFather erhaltenes Anbieter-Token nach dem Verbinden Ihres Zahlungsanbieters. |
| platform_id | Erforderlich. Empfänger-ID (Benutzer-, Gruppen- oder Kanal-ID). |
| title | Erforderlich. Produkttitel (1–32 Zeichen). |
| description | Erforderlich. Produktbeschreibung (1–255 Zeichen). |
| currency | Erforderlich. Zahlungswährung (z. B.: EUR, USD, UAH). Siehe Liste der unterstützten Währungen: https://core.telegram.org/bots/payments#supported-currencies |
| prices | Array, das die Rechnungsposten beschreibt. Jeder Posten enthält einen Titel und einen Betrag. Beträge können ganze Zahlen oder Dezimalzahlen sein. Beispiel: [["Product", 2000], ["VAT", 20.75], ["Packaging", 100]]
|
| photo_url | URL des Produktbildes. |
| payload | Benutzerdefinierte Nutzlast, die im Zahlungs-Callback zurückgegeben wird. Standard: tg_payment. |
| protect_content |
1 – Inhalt vor Kopieren und Screenshots schützen.0 – kein Schutz. |
| disable_notification |
1 – still senden.0 – mit Benachrichtigung senden. |
| need_name |
1 – vollständigen Namen des Kunden anfordern.0 – nicht anfordern. |
| need_phone_number |
1 – Telefonnummer des Kunden anfordern.0 – nicht anfordern. |
| need_email |
1 – E-Mail-Adresse des Kunden anfordern.0 – nicht anfordern. |
| reply_to_message_id | Nachrichten-ID, auf die geantwortet werden soll. Verwenden Sie '', um die Rechnung als separate Nachricht zu senden. |
| reply_markup | Tastaturkonfiguration. Der erste Button muss den Typ pay haben. |
| message_thread_id | Themen-ID für Foren-fähige Supergruppen. |
| provider_data | JSON-Objekt mit anbieterspezifischen Zahlungsdaten. Konsultieren Sie die Dokumentation Ihres Zahlungsanbieters für die erforderlichen Felder. |
Wichtig
Parameter müssen in der exakt oben gezeigten Reihenfolge übergeben werden.
Wenn Sie optionale Parameter überspringen müssen, lassen Sie sie leer oder übergeben Sie die in der Dokumentation beschriebenen Standardwerte.
Beispiel

Wenn einer der folgenden Parameter aktiviert ist:
need_nameneed_phone_numberneed_email
wird Telegram den Kunden vor der Zahlung nach den angeforderten Informationen fragen.
Nach einer erfolgreichen Zahlung werden die gesammelten Informationen automatisch in den entsprechenden Client-Variablen gespeichert.
Beispiel:

Zahlungs-Callback
Nach einer erfolgreichen Zahlung sendet Telegram den folgenden Callback an den Bot:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9
Wobei:
-
tg_payment– der bei der Rechnungserstellung angegebene Payload-Wert. -
1372995196– die Chat-ID, in der die Rechnung ursprünglich gesendet wurde. -
120.75– der Zahlungsbetrag. -
USD– die Zahlungswährung. -
2ff747b9-000f-5000-b000-16d7e3517aa9– die vom Zahlungsanbieter zurückgegebene Zahlungs-ID.

Wenn Kundeninformationen angefordert wurden, werden auch die folgenden Client-Variablen automatisch ausgefüllt:
tg_payment_nametg_payment_phonetg_payment_email

Der Zahlungs-Callback wird an den privaten Chat des Benutzers mit dem Bot gesendet.
Der Benutzer muss vor der Zahlung bereits ein Gespräch mit dem Bot begonnen haben. Andernfalls kann Telegram die Callback-Nachricht nicht zustellen.
Nach Erhalt des Zahlungs-Webhooks bestätigt MaviBot die Zahlung automatisch mit der Methode
answerPreCheckoutQuery.
Anheften einer Rechnungsnachricht
Nach dem Verbinden eines Zahlungsanbieters können Sie die Rechnungsnachricht anheften.
Verwenden Sie die Funktion:
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Parameter | Beschreibung |
|---|---|
| platform_id | Telegram-Chat-ID. |
| message_id | ID der anzuheftenden Nachricht. |
| disable_notification | Steuert, ob Telegram eine Benachrichtigung über die angeheftete Nachricht sendet.1 – keine Benachrichtigung.0 – Benachrichtigung senden.Benachrichtigungen sind in privaten Chats und Kanälen immer deaktiviert. |
Beispiel
Schritt 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"}]]}'
)
Schritt 2
Extrahieren Sie die message_id aus der Antwort:
res = get(result, 'result')
m_id = get(res, 'message_id')

Dann heften Sie die Nachricht an:
tg_pin_chat_message(#{platform_id}, #{m_id}, 1)
Beispiel: minimal erforderliche Parameter
prices = [["Super course", 100]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'Creating courses is super easy',
'USD',
prices
)

Beispiel: Rechnung mit einer Inline-Tastatur
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"}]]}'
)
