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

  1. course_pay - payload - die Nutzlast aus der ursprünglichen Rechnungserstellungsanfrage;
  2. 1372995196 - die Chat-ID, in der die Rechnung ursprünglich gesendet wurde;
  3. 120.75 - der gesamte Zahlungsbetrag;
  4. USD - die Währung;
  5. 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"}]]}')