Comment connecter un système de paiement

Le système de paiement est intégré à Telegram. Pour accepter des paiements dans le messager, vous devez :

  • Connecter un système de paiement à votre bot via BotFather.
  • Accéder aux paramètres du bot souhaité et sélectionner "Paiements" dans le menu.

Suivez les instructions pour connecter un système de paiement disponible et copiez le jeton fourni.

Comment facturer un client

Pour envoyer une facture dans Telegram, utilisez la méthode et spécifiez les paramètres requis.

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)

Paramètres de la fonction Description du paramètre
**!** provider_token (paramètre obligatoire) jeton obtenu depuis BotFather après avoir connecté le système de paiement
**!** platform_id (paramètre obligatoire) ID du destinataire - identifiant de l'utilisateur, du groupe ou du canal
**!** title (paramètre obligatoire) titre du produit, 1 à 32 caractères
**!** description (paramètre obligatoire) description du produit, 1 à 255 caractères
**!** currency (paramètre obligatoire) devise du paiement (**EUR**, USD, UAH, etc. ; pour plus de détails https://core.telegram.org/bots/payments#supported-currencies )
prices

Un tableau de tableaux contenant les détails de tarification du produit et des services supplémentaires (livraison, emballage, etc.). Affiché sur la page de paiement. Le montant peut être spécifié soit comme un entier (par exemple, 125) soit comme un nombre décimal avec un point (par exemple, 120.25).

Par exemple : [["product", 2000], ["VAT", 20.75], ["packaging", 100]]

photo_url URL de l'image du produit
payload La première partie du callback de paiement, par défaut est tg_payment
protect_content 1 - protéger contre la copie et les captures d'écran, 0 - aucune protection
disable_notification 1 - envoyer avec notification, 0 - sans notification
need_name 1 - exiger le nom complet de l'utilisateur pour finaliser la commande, 0 - aucune demande de nom
need_phone_number 1 - exiger le numéro de téléphone de l'utilisateur pour finaliser la commande, 0 - aucune demande de numéro de téléphone
need_email 1 - exiger l'email de l'utilisateur pour finaliser la commande, 0 - aucune demande d'email
reply_to_message_id ID du message auquel répondre ; si vous souhaitez envoyer la facture comme un message séparé, utilisez deux guillemets simples ('')
reply_markup Clavier avec le premier bouton défini sur le type pay
message_thread_id ID du sujet (disponible pour les supergroupes avec la fonctionnalité de forum activée)
provider_data Données de la facture au format JSON à envoyer au fournisseur de services de paiement. Le système de paiement doit fournir des descriptions détaillées des champs requis.

IMPORTANT ! Tous les paramètres doivent être transmis dans l'ordre spécifié dans la fonction. Si vous devez spécifier un paramètre particulier et en omettre d'autres, laissez des valeurs vides ou des valeurs comme spécifié dans la documentation pour les paramètres dont vous n'avez pas besoin.

Exemple :

Si l'un des paramètres need_name, need_phone_number ou need_email est activé, l'utilisateur sera invité à fournir ces informations avant de finaliser le paiement. En cas de paiement réussi, les données sont enregistrées dans les variables client correspondantes.

Exemple :

Résultat : les données sont demandées avant le paiement.

Callback de paiement

Si un paiement est réussi, un callback avec le contenu suivant sera envoyé dans le chat de l'utilisateur :

tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa',

  1. course_pay - payload - le payload de la demande de création de facture d'origine ;
  2. 1372995196 - l'ID du chat où la facture a été envoyée à l'origine ;
  3. 120.75 - le montant total du paiement ;
  4. USD - la devise ;
  5. 2ff747b9-000f-5000-b000-16d7e3517aa9 - l'ID du paiement dans le système du marchand.

De plus, si le nom, le numéro de téléphone et/ou l'email de l'utilisateur ont été demandés, les variables correspondantes seront attribuées au client :

tg_payment_name, tg_payment_phone et tg_payment_email

Un callback de succès de paiement sera envoyé dans les messages directs de l'utilisateur avec le bot.

L'utilisateur doit avoir un chat existant avec le bot (c'est-à-dire qu'il doit avoir démarré ou s'être abonné au bot) avant que le paiement ne soit effectué. Sinon, le bot ne peut pas lui envoyer le message direct.

Une fois le webhook de paiement reçu, le paiement sera automatiquement confirmé via la méthode answerPreCheckoutQuery. https://core.telegram.org/bots/api#answerprecheckoutquery

Message épinglé avec un bouton de paiement

Vous devez utiliser la fonction d'épinglage de message après avoir connecté le système de paiement.

tg_pin_chat_message(platform_id, message_id, disable_notification)

Paramètres de la fonction Description
**!** platform_id ID du chat Telegram *
message_id ID du message à épingler
disable_notification Ce paramètre définit si une notification doit être envoyée à tous les membres du chat concernant le message nouvellement épinglé. Les notifications sont toujours désactivées dans les canaux et les chats privés.
Pour désactiver les notifications, définissez le paramètre disable_notification sur 1 ; sinon, utilisez 0.

Exemple :

Étape 1 :
prices = [["course", 100], ["VAT", 20.75]]

result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is easy', 'USD', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}]]}')

Étape 2 :
À la suite de la première étape, vous recevrez une réponse dont vous devez extraire la valeur message_id à l'aide de la fonction get().
res=get(result,'result')
m_id=get(res,'message_id')

Ensuite, épinglez le message : tg_pin_chat_message(#{platform_id}, #{m_id}, 1)

Exemple : ensemble minimal de paramètres

prices = [["super course", 100]]

result= tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is super easy', 'USD', prices)

Exemple : clavier

prices = [["course", 100], ["VAT", 20.75]]

tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', '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"}]]}')