Stripe
Comment connecter
Pour connecter le système de paiement Stripe, vous aurez besoin d’une clé API secrète et d’une clé de webhook.
Vous pouvez copier la clé API secrète en allant dans la section Developers -> API key et en copiant la Secret key.
Étape 1. Allez dans la section Developers -> API key :

Étape 2. Trouvez et copiez la Secret key :

Ensuite, vous devez définir l’URL pour les callbacks. C’est nécessaire pour que le bot reçoive les notifications de paiement.
Allez dans la section Webhooks et ajoutez l’adresse pour les webhooks.

Le formulaire s’ouvre :

Étape 1. Cliquez sur "+add destination".
Étape 2. Sélectionnez les événements :

Étape 3. Sélectionnez le type de "Webhook endpoint" :

Étape 4. Nous prenons connaissance du type de requête et cliquons sur "Continue" :

Étape 5. Nous indiquons le nom et précisons l’URL du endpoint :

Spécifier l’URL - https://chatter.salebot.pro/stripe_callback/result
Étape 6. Deux endpoints seront créés, vous pouvez consulter les paramètres avant d’ajouter :

Étape 7. Ensuite, cliquez sur le bouton "Add destinations". Les webhooks seront alors enregistrés.
Étape 8. Cliquez sur le bouton "Done".

Nous l’enregistrons et arrivons à la page avec le webhook installé :

Étape 9. Ensuite, cliquez sur le webhook où vous avez sélectionné tous les événements :

Étape 10. Nous trouvons la clé de signature et nous la sauvegardons (à l’avenir, nous en aurons besoin pour nous connecter à Salebot) :

Après avoir reçu les clés, nous passons à la connexion à Mavibot.
Dans Mavibot, ouvrez la section "Acquiring" et sélectionnez Stripe.

Sur la page de connexion, vous devez saisir les clés reçues :

Cliquez sur "Save Settings".
Terminé !
Cela termine la connexion du système de paiement !
Comment connecter un callback sur le statut de la transaction
Pour obtenir un callback supplémentaire, nous devrons connecter un webhook dans en plus de celui existant.
Spécifier l’URL - https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status
et sélectionnez les événements :
charge.failedcharge.pendingcharge.succeeded

En savoir plus sur chaque type de webhook :
charge.succeeded - contient des informations sur la réussite de la transaction (similaire à un callback sur un paiement réussi)
charge.pending - "la transaction est en cours", elle peut prendre jusqu’à 7 jours pour être terminée. Le webhook ressemblera à {10 premiers caractères}{type de webhook} Par exemple: sk_test_45LDPJLKT95d_charge.pending
charge.failed - "la transaction a échoué." Le webhook ressemblera à {10 premiers caractères}{type de webhook} Par exemple : sk_test_45LDPJLKT95d_charge.failed
Nous ajoutons le webhook reçu après l’enregistrement au champ Mavibot - Webhook key2 :

stripe_invoice_id - ID de transaction pour laquelle le callback de paiement réussi n’a pas été reçu immédiatement après le paiement.
Comment connecter les taxes
Pour utiliser les taxes dans les paiements, vous devez d’abord les créer dans le compte Stripe. Pour ce faire, entrez tax rates dans la barre de recherche :

Et cliquez sur "+ Add tax rates" :

Ensuite, spécifiez le taux de taxe applicable :

Dans le menu qui s’ouvre, sélectionnez le type de taxe, la région d’application, le taux de taxe, ainsi que l’option indiquant si cette taxe doit être incluse dans le montant du paiement ('Inclusive') ou ajoutée en supplément du montant - exclusive :

Après avoir créé le taux de taxe, copiez son ID dans la stripe_tax_id variable avant de définir le montant du paiement.

Pour éviter les erreurs, mettez une chaîne vide ("") dans la variable stripe_tax_id après avoir reçu le lien, afin de pouvoir appliquer la taxe uniquement lorsque cela est nécessaire.
Si tout est fait correctement, alors dans le cas du taux de taxe avec le paramètre exclusive, vous verrez ce qui suit

Comment obtenir un lien de paiement
Pour générer un lien de paiement, vous devez définir la valeur de la payment_sum variable (par exemple, 150 ou 100.55 (séparé par un point !)), puis la variable stripe_pay_url apparaîtra. Cette variable peut être affichée sous forme de lien ou placée sur un bouton avec le texte "Pay".
Le lien ressemble à :
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
Par défaut, USD (dollar) est défini. Si vous avez besoin d’une autre devise, vous devez définir la valeur de la currency variable.
Aussi, avant de définir la valeur de la payment_sum variable, vous pouvez définir les variables facultatives suivantes pour configurer le paiement.
currency
est la devise de la commande. Valeurs acceptées -https://stripe.com/docs/currencies
payment_description
description de la commande
stripe_tax_id
Il s’agit de l’ID du taux de taxe, configuré dans le compte Stripe. La manière de le configurer est décrite dans la section "Comment configurer les taxes" lien "Comment connecter les taxes"
stripe_invoice_enable
Ce paramètre indique la nécessité de sauvegarder les factures (invoices, receipts). Entrez n’importe quelle valeur — tous les documents nécessaires seront alors disponibles dans votre compte Stripe.
stripe_locale
définir la langue du lien de paiement : en, ru, de. Toutes les langues disponibles sont ici : https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale Si le stripe_local si la valeur n’est pas fournie, la langue du navigateur du client sera utilisée par défaut.
stripe_payment_method_type
est le moyen de paiement ; par défaut, le paiement par carte est utilisé. Vous pouvez le remplacer par d’autres moyens de paiement disponibles dans Stripe. Les méthodes disponibles sont indiquées ci-dessous
Par exemple, stripe_payment_method_type = "customer_balance"
stripe_additional_payment_method_type
sert à ajouter un moyen de paiement supplémentaire. Les méthodes disponibles sont indiquées ci-dessous, par exemple, stripe_additional_payment_method_type = "sepa_debit"
coupon_id
ID du coupon de réduction
stripe_expired
est la durée de validité du lien de paiement. Spécifiée en secondes. Le temps minimum est de 30 minutes, le maximum est de 24 heures. La valeur par défaut est 24 heures
stripe_automatic_tax
activation du calcul et de la collecte automatiques des taxes pendant le paiement. Pour l’activer, transmettez "1". Des informations détaillées sur ce réglage se trouvent dans la documentation Stripe. lien dans la documentation Stripe
Attention ! Si vous utilisez à la fois stripe_payment_method_type et stripe_additional_payment_method_type variables, alors les valeurs qu’elles contiennent DOIVENT être DIFFÉRENTES !
Liste des valeurs pour stripe_payment_method_type et stripe_additional_payment_method_type
card acss_debit affirm afterpay_clearpay alipay au_becs_debit bacs_debit bancontact blik boleto cashapp customer_balance eps fpx giropay grabpay ideal klarna konbini link oxxo p24 paynow paypal pix promptpay sepa_debit sofort us_bank_account wechat_pay zip
Vous pouvez en savoir plus sur chacun des moyens de paiement et sur les pays où ils sont disponibles dans la documentation Stripe : voir sur le site
Exemple de génération d’un lien de paiement
Créons un lien de paiement d’un montant de 1000 roubles (par défaut en dollars)

Veuillez noter : - D’abord, vous indiquez les paramètres facultatifs first_name, payment_description etc. - Et la dernière à laquelle on attribue une valeur est la variable payment_sum
Les variables peuvent aussi être définies plus tôt dans la chaîne, et non dans un seul bloc ; c’est un exemple.
Ensuite, à l’endroit voulu, nous affichons la variable stripe_pay_url, qui contient le lien dans un bloc ou dans un bouton :
Exemple 1. Nous affichons le lien de paiement directement dans le message :

Test dans le bot :

Exemple 2. Nous ajoutons le lien de paiement à un bouton :


Exemple 3. Nous ajoutons le lien comme pièce jointe au message :

Test dans le bot :

Les trois options sont valables pour envoyer le lien de paiement dans le bot.
Lors d’un clic sur le bouton ou en suivant le lien, votre payeur sera redirigé vers la page de paiement :

Dans l’exemple, on voit que les paramètres que nous avons indiqués dans le calculateur dans les paramètres du bloc ont été appliqués : description de la commande, devise et montant.
Si vous transmettez le paramètre du taux de taxe (stripe_tax_id) dans le bloc :

Alors le taux de taxe sera également affiché dans le formulaire de paiement :

Exemple de code à copier
payment_description = 'Paiement test dans Stripe'
currency = 'RUB'
stripe_tax_id = 'copiez ici votre tax ID'
payment_sum = 1000
Où trouver le tax ID :

Comment configurer les paiements récurrents
Pour les paiements récurrents (abonnements), avant de déclarer la variable payment_sum déclarez la variable stripe_subscription et attribuez-lui le nom de l’abonnement.
Vous pouvez également ajouter les variables suivantes : interval – durée de l’intervalle d’abonnement, vous devez transmettre à cette variable la valeur ‘day’ - pour les jours, ‘week’ - semaines, ‘month’ - mois, ‘year’ - ans. Si la variable n’est pas déclarée, alors par défaut le paramètre ‘month’.
Important ! La durée d’un cycle d’abonnement ne peut pas dépasser 1 an (pour le paramètre ‘year’), plus de 12 mois (pour le paramètre ‘month’), plus de 52 semaines (pour le paramètre ‘week’).

interval_count – nombre d’intervalles indiqués, combien de jours, semaines ou mois l’abonnement comprendra pour le montant spécifié. Par défaut le paramètre transmis sera égal à un (1);
stripe_payment_method_type - moyen de paiement, par défaut le paiement par carte (card) est utilisé. Vous pouvez le remplacer par d’autres moyens de paiement disponibles dans Stripe. Les méthodes disponibles sont indiquées ci-dessous.
Par exemple, stripe_payment_method_type = 'customer_balance'
stripe_additional_payment_method_type - ajouter un moyen de paiement supplémentaire. Les méthodes disponibles sont indiquées ci-dessous
Par exemple, stripe_additional_payment_method_type = 'sepa_debit'
Important ! Si vous utilisez les deux variables stripe_payment_method_type et stripe_additional_payment_method_type, alors les valeurs doivent OBLIGATOIREMENT être DIFFÉRENTES !
Liste des valeurs pour stripe_payment_method_type et stripe_additional_payment_method_type :
card acss_debit affirm afterpay_clearpay alipay au_becs_debit bacs_debit bancontact blik boleto cashapp customer_balance eps fpx giropay grabpay ideal klarna konbini link oxxo p24 paynow paypal pix promptpay sepa_debit sofort us_bank_account wechat_pay zip
Pour plus d’informations sur chacun des moyens et sur les pays où ils sont disponibles, consultez la documentation Stripe : voir le site lien voir sur le site
Attention ! La durée de l’abonnement ne peut pas dépasser 1 an (pour le paramètre ‘year’), plus de 12 mois (pour le paramètre ‘month’), plus de 52 semaines (pour le paramètre ‘week’).
Dans cet exemple, un abonnement nommé 'My_subscription' sera créé avec un prix de 90 USD pour 3 mois, et un paiement récurrent du même montant sera effectué après ces 1 mois :

Un exemple à copier :
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
Après le paiement, le client aura stripe_subscription_id variables dans les variables de la transaction, qui seront nécessaires pour configurer l’annulation de l’abonnement, et stripe_customer_id, qui pourra ensuite être utilisé pour vérifier le statut de l’abonnement.
La notification (callback) n’est reçue qu’au premier paiement récurrent !
IL N’Y AURA PAS de callback pour les appels répétés. Le contrôle se fait via la fonction et le stripe_customer_id. via la fonction lien

Retour aux paramètres des paiements réguliers
Pour revenir aux paiements réguliers, attribuez à la variable d’abonnement une chaîne vide stripe_subscription = ". Dans ce cas, les variables interval et interval_count n’affecteront pas la création du lien.

Annulation des paramètres d’abonnement
Pour annuler un abonnement dans le calculateur, utilisez la stripe_remove_subscription(stripe_subscription_id) méthode, où stripe_subscription_id est l’identifiant qui a été enregistré dans les informations de la transaction après le paiement.
Cela vous permettra de conserver votre abonnement payant actif jusqu’à la fin de la période payée en cours, mais les futurs prélèvements n’auront pas lieu, et l’abonnement sera annulé à l’expiration :

answer = stripe_remove_subscription('#{stripe_subscription_id}')
stripe_remove_subscription - En cas de succès, vous recevrez une réponse contenant des informations sur la date jusqu’à laquelle l’abonnement annulé reste valide.
Dans cet exemple, le résultat de l’exécution de la fonction sera placé dans la variable answer et il sera possible de vérifier le résultat de l’exécution.
Vérification du statut de l’abonnement
stripe_check_subscription(subscription_id, customer_id), où
stripe_subscription_id - ID d’abonnement stripe_customer_id - ID client dans Stripe (paramètre facultatif)

Comment créer un coupon et obtenir un ID de réduction
Pour recevoir l’ID de réduction, créez un coupon dans votre compte personnel dans la section ”coupons”. lien ”coupons».

Après avoir cliqué sur le bouton “New”, une page s’ouvre où vous devez indiquer :
Name — nom de la réduction ;
ID — identifiant généré automatiquement.
Type — type de réduction : pourcentage ou montant fixe
Duration — durée de la réduction (ponctuelle ou récurrente, par exemple pour les abonnements) et autres paramètres.

Le coupon de réduction apparaîtra dans le “Product catalog“ dans la section “Coupons”, et vous pouvez voir l’ID de réduction en allant dans le menu du coupon :

Cliquez sur le coupon pour copier l’ID du coupon :

Comment ajouter une réduction à la commande
Lors de la génération d’un lien de paiement (pour les abonnements comme pour les paiements uniques).
Dans le calculateur du bloc, avant de déclarer la payment_sum définissez la variable coupon_id variable en lui attribuant l’ID de réduction provenant du compte Stripe.

Pour l’ajouter à un abonnement existant à l’aide de la stripe_add_subscription_discount fonction.
Définissez les conditions de déclenchement du bloc et appelez la fonction indiquée dans le calculateur, en lui fournissant les paramètres stripe_subscription_id (ID d’abonnement) et coupon_id (ID du coupon de réduction). La réduction sera appliquée pour les paiements d’abonnement suivants.

Exemple de code à copier
stripe_subscription = 'Abonnement premium'
interval = 'month'
payment_description = 'Paiement test dans Stripe'
currency = 'USD'
coupon_id = 'ID de votre coupon'
stripe_add_subscription_discount(stripe_subscription_id, coupon_id)
stripe_tax_id = 'ID de la taxe'
payment_sum = 90
En cas d’ajout réussi, la fonction renvoie un message indiquant l’ID de l’abonnement, le type, le montant ou le pourcentage de la réduction ainsi que sa date d’expiration.

Pour plus d’informations sur la création d’un abonnement, consultez la section "Comment configurer les paiements récurrents" lien "Comment configurer les paiements récurrents"
Comment supprimer/modifier la réduction de l’abonnement
La réduction attachée à l’abonnement peut être supprimée ou remplacée par une autre réduction.
Si vous souhaitez mettre fin à la réduction, définissez une condition de déclenchement du bloc et appelez la stripe_remove_subscription_discount fonction dans le calculateur, en lui donnant le stripe_subscrition_id paramètre (ID d’abonnement).

Après exécution réussie de l’opération, la fonction renvoie un message contenant l’ID de l’abonnement et la date d’annulation de la réduction.
Le remplacement de la réduction, ainsi que l’ajout d’une nouvelle, se fait à l’aide de stripe_add_subscription_discount fonction. N’oubliez pas de lui transmettre les stripe_subscription_id et coupon_id paramètres. Une requête réussie mettra à jour le coupon attaché à l’abonnement et renverra un message avec les informations actuelles.
Vous pouvez lire comment obtenir un ID de réduction dans la section "Comment créer un coupon et obtenir un ID de réduction". lien "Comment créer un coupon et obtenir un ID de réduction".
Comment traiter le résultat
Après un paiement réussi, des callbacks seront envoyés au bot, ce qui vous permettra de savoir que le paiement a réussi. Vous voyez ces callbacks dans le système comme des messages provenant de l’utilisateur, afin que l’utilisateur ne puisse pas les envoyer ; ils se composent des 20 premiers caractères de la clé secrète et du suffixe de succès, par exemple : sk_live_d35gky6d8ers_success

Ces callbacks NE SONT PAS VISIBLES pour l'utilisateur, ils ne sont affichés qu'à l'opérateur.
Le type de comparaison doit être "Correspondance exacte"
De plus, après un paiement réussi, la stripe_payment_completed variable est définie sur True.
Par exemple, vous pouvez traiter un paiement réussi dans un bloc conditionnel et afficher le message correspondant à l'utilisateur :

Une fois le paiement effectué, la variable stripe_callback_data variable sera ajoutée au client et contiendra les données de la réponse du système de paiement pour la transaction effectuée. Vous pouvez extraire les données nécessaires du dictionnaire obtenu à l’aide de la get .
Pour effectuer un paiement répété, vous devez réinitialiser payment_sum, le lien précédemment généré, puis réattribuer la variable payment_sum pour obtenir un nouveau lien. Vous pouvez spécifier la valeur précédente.
Comment tester les paiements
Pour tester l’intégration, vous pouvez utiliser la clé secrète de l’environnement de test. Pour ce faire, passez en mode test dans le compte Stripe à l’aide du commutateur dans le menu de droite
Ensuite, effectuez la configuration décrite au début de ce guide. Entrez la clé secrète de test et ajoutez l’adresse du webhook à l’environnement de test.
Le numéro de carte de test
4242 4242 4242 4242 toute date future CVC - n’importe quels trois chiffres
Si quelque chose ne fonctionne pas, comparez les données avec celles du site officiel. lien sur le site officiel.
Mis à jour