So schließen Sie ein Zahlungssystem an
Das Zahlungssystem ist in Telegram integriert. Um Zahlungen innerhalb des Messengers zu akzeptieren, müssen Sie:
- Ein Zahlungssystem über BotFather mit Ihrem Bot verbinden.
- Gehen Sie zu den gewünschten Bot-Einstellungen und wählen Sie "Zahlungen" aus dem Menü.


Folgen Sie den Anweisungen, um ein verfügbares Zahlungssystem zu verbinden, und kopieren Sie das bereitgestellte Token.



So stellen Sie einem Kunden eine Rechnung
Um eine Rechnung in Telegram zu senden, verwenden Sie die Methode und geben Sie die erforderlichen Parameter an.
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)
| Funktionsparameter | Parameterbeschreibung |
|---|---|
| **!** provider_token | (erforderlicher Parameter) Token, das nach dem Verbinden des Zahlungssystems von BotFather erhalten wurde |
| **!** platform_id | (erforderlicher Parameter) Empfänger-ID – Benutzer-, Gruppen- oder Kanalidentifikator |
| **!** title | (erforderlicher Parameter) Produkttitel, 1–32 Zeichen |
| **!** description | (erforderlicher Parameter) Produktbeschreibung, 1–255 Zeichen |
| **!** currency | (erforderlicher Parameter) Zahlungswährung (**EUR**, USD, UAH usw.; weitere Details https://core.telegram.org/bots/payments#supported-currencies ) |
| prices |
Ein Array von Arrays mit Preisdetails für das Produkt und zusätzliche Dienstleistungen (Lieferung, Verpackung usw.). Wird auf der Zahlungsseite angezeigt. Der Betrag kann entweder als Ganzzahl (z. B. 125) oder als Dezimalzahl mit Punkt (z. B. 120.25) angegeben werden.
Zum Beispiel: [["Produkt", 2000], ["MwSt.", 20.75], ["Verpackung", 100]] |
| photo_url | Produktbild-URL |
| payload | Der erste Teil des Zahlungs-Callbacks, Standard ist tg_payment |
| protect_content | 1 – vor Kopieren und Screenshots schützen, 0 – kein Schutz |
| disable_notification | 1 – mit Benachrichtigung senden, 0 – ohne Benachrichtigung |
| need_name | 1 – vollständigen Benutzernamen zur Auftragsabwicklung anfordern, 0 – keine Namensanforderung |
| need_phone_number | 1 – Telefonnummer des Benutzers zur Auftragsabwicklung anfordern, 0 – keine Telefonnummernanforderung |
| need_email | 1 – E-Mail des Benutzers zur Auftragsabwicklung anfordern, 0 – keine E-Mail-Anforderung |
| reply_to_message_id | Nachrichten-ID, auf die geantwortet werden soll; wenn Sie die Rechnung als separate Nachricht senden möchten, verwenden Sie zwei einfache Anführungszeichen ('') |
| reply_markup | Tastatur, bei der die erste Schaltfläche auf den Typ pay gesetzt ist |
| message_thread_id | Themen-ID (verfügbar für Supergruppen mit aktivierter Forum-Funktionalität) |
| provider_data | Rechnungsdaten im JSON-Format, die an den Zahlungsdienstleister gesendet werden. Das Zahlungssystem sollte detaillierte Beschreibungen der erforderlichen Felder bereitstellen. |
WICHTIG! Alle Parameter müssen in der in der Funktion angegebenen Reihenfolge übergeben werden. Wenn Sie einen bestimmten Parameter angeben und andere auslassen möchten, lassen Sie leere Werte oder Werte, wie in der Dokumentation für die nicht benötigten Parameter angegeben.
Beispiel:

Wenn einer der Parameter need_name, need_phone_number oder need_email aktiviert ist, wird der Benutzer aufgefordert, diese Informationen vor Abschluss der Zahlung anzugeben. Bei erfolgreicher Zahlung werden die Daten in den entsprechenden Client-Variablen gespeichert.
Beispiel:

Ergebnis: Daten werden vor der Zahlung angefordert.
Zahlungs-Callback
Bei erfolgreicher Zahlung wird ein Callback mit folgendem Inhalt an den Chat des Benutzers gesendet:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa', wobei
- course_pay - payload - die Nutzlast aus der ursprünglichen Rechnungserstellungsanfrage;
- 1372995196 - die Chat-ID, in der die Rechnung ursprünglich gesendet wurde;
- 120.75 - der gesamte Zahlungsbetrag;
- USD - die Währung;
- 2ff747b9-000f-5000-b000-16d7e3517aa9 - die Zahlungs-ID im System des Händlers.

Zusätzlich, wenn der Name, die Telefonnummer und/oder die E-Mail des Benutzers angefordert wurden, werden die entsprechenden Variablen dem Client zugewiesen:
tg_payment_name, tg_payment_phone und tg_payment_email

Ein Zahlungserfolgs-Callback wird an die Direktnachrichten des Benutzers mit dem Bot gesendet.
Der Benutzer muss einen bestehenden Chat mit dem Bot haben (d. h. er muss den Bot gestartet oder abonniert haben) bevor die Zahlung getätigt wird. Andernfalls kann der Bot ihm keine Direktnachricht senden.
Sobald der Zahlungs-Webhook empfangen wird, wird die Zahlung automatisch über die Methode answerPreCheckoutQuery bestätigt. https://core.telegram.org/bots/api#answerprecheckoutquery
Angeheftete Nachricht mit einem Zahlungsbutton
Sie müssen die Funktion zum Anheften von Nachrichten verwenden, nachdem Sie das Zahlungssystem verbunden haben.
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Funktionsparameter | Beschreibung |
|---|---|
| **!** platform_id | Telegram-Chat-ID * |
| message_id | Nachrichten-ID, die angeheftet werden soll |
| disable_notification | Dieser Parameter definiert, ob eine Benachrichtigung an alle Chat-Mitglieder über die neu angeheftete Nachricht gesendet werden soll. Benachrichtigungen sind in Kanälen und privaten Chats immer deaktiviert.
Um Benachrichtigungen zu deaktivieren, setzen Sie den Parameter disable_notification auf 1; andernfalls verwenden Sie 0. |
Beispiel:
Schritt 1:
prices = [["Kurs", 100], ["MwSt.", 20.75]]
result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Kurs über Kurse', 'Kurse erstellen ist einfach', 'USD', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Bezahlen", "pay":"True"}]]}')
Schritt 2:
Als Ergebnis des ersten Schritts erhalten Sie eine Antwort, aus der Sie den Wert message_id mit der Funktion get() extrahieren müssen.
res=get(result,'result')
m_id=get(res,'message_id')

Als nächstes heften Sie die Nachricht an: tg_pin_chat_message(#{platform_id}, #{m_id}, 1)
Beispiel: minimaler Parametersatz
prices = [["Superkurs", 100]]
result= tg_send_invoice('381764678:TEST:129736', platform_id, 'Kurs über Kurse', 'Kurse erstellen ist super einfach', 'USD', prices)

Beispiel: Tastatur
prices = [["Kurs", 100], ["MwSt.", 20.75]]
tg_send_invoice('381764678:TEST:129736', platform_id, 'Kurs über Kurse', 'Kurse erstellen ist einfach', 'USD', prices, 'https://mavibot.ai/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Bezahlen", "pay":"True"}], [{"text":"Ein weiterer Button", "callback_data": "Ein weiterer Button"}]]}')
