So verbinden Sie einen Zahlungsanbieter

Telegram verfügt über ein integriertes Zahlungssystem. Um Zahlungen in Telegram zu akzeptieren, müssen Sie:

  1. Über BotFather einen Zahlungsanbieter mit Ihrem Bot verbinden.
  2. Ö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_name
  • need_phone_number
  • need_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:

  1. tg_payment – der bei der Rechnungserstellung angegebene Payload-Wert.
  2. 1372995196 – die Chat-ID, in der die Rechnung ursprünglich gesendet wurde.
  3. 120.75 – der Zahlungsbetrag.
  4. USD – die Zahlungswährung.
  5. 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_name
  • tg_payment_phone
  • tg_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.

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