Prodamus (BLR)
Disponible uniquement dans l’offre « Infobiz ».
Comment connecter Prodamus
Pour connecter Prodamus, vous aurez besoin de l’URL du formulaire de paiement et de la clé secrète.
URL du formulaire de paiement vous l’obtenez après l’inscription, il ressemble à : demo.payform.ru
La clé secrète peut être obtenue dans l’espace personnel ; il faut également y renseigner l’URL des notifications.

Instructions détaillées pour le faire : https://help.prodamus.ru/payform.ru-onlain-oplaty/prochee/url-dlya-uvedomlenii-i-sekretnyi-klyuch
Adresse des notifications : https://chatter.salebot.pro/prodamus_callback/result
Cette adresse doit être renseignée dans les paramètres à deux endroits.
Sur la page principale des paramètres, vous pouvez choisir le mode de fonctionnement du formulaire : mode démo sans paiements ou mode paiements :

L’adresse des notifications doit être renseignée dans les paramètres du système de paiement à deux endroits : l’onglet Paramétrage du formulaire - pour les paiements standards, et l’onglet Abonnements - pour les paiements par abonnement.

Adresse des notifications : https://chatter.salebot.pro/prodamus_callback/result
Pour configurer le fonctionnement avec les paiements par abonnement allez dans l’onglet Abonnements et renseignez l’adresse des notifications : https://chatter.mavibot.ai/prodamus_callback/result

Attention ! Après avoir saisi l’URL, cliquez impérativement sur le bouton « Enregistrer ».
Pour connecter Prodamus, il faut aller dans la section « Acquéreur »

Ensuite, il suffit d’indiquer dans le formulaire les données évoquées ci-dessus :

IMPORTANT ! l’url du formulaire de paiement est indiquée SANS https://
La connexion est terminée. Maintenant, voyons comment utiliser cette fonctionnalité.
Comment générer un lien de paiement
Vous pouvez générer un lien de paiement dans le bloc L’UN DES modes disponibles :
Création d’un lien à l’aide de la variable payment_sum et de paramètres supplémentaires (ancienne version fonctionnelle)
Bouton avec la fonction Paiement
Examinons tous les paramètres possibles de ce bouton.
Paramètres obligatoires du bouton Paiement pour Prodamus
Pour générer un lien de paiement dans les paramètres du bouton, il faut indiquer les paramètres obligatoires "Montant", "Nom du produit», ainsi que le paramètre «Contenu payé» si vous n’avez pas votre propre caisse en ligne et que vous souhaitez recevoir un reçu de Prodamus.
Lors de l’ouverture de la page de commande, les informations sur le produit et son prix seront déjà renseignées ; le client n’aura plus qu’à indiquer ses coordonnées. Si, dans les paramètres du bouton, vous indiquez l’email et/ou le téléphone de l’utilisateur, la page de commande affichera les coordonnées du payeur ainsi que les informations sur le produit et son prix.

champ Texte. Ce texte sera affiché sur le bouton avec le lien de paiement dans le message
champ Fonction. Pour créer un bouton permettant de fournir un lien de paiement, choisissez la fonction Paiement
champ Système de paiement. Les systèmes de paiement connectés au projet sont affichés dans la liste
Si aucun système de paiement n’est connecté au projet, ce type de bouton ne sera pas disponible
champ Nom du produit (obligatoire). Dans ce champ, il faut indiquer le nom du produit. Plus le nom est précis, mieux c’est. Par exemple : pas « Téléphone », mais « Smartphone Xiaomi modèle … »
IL EST INTERDIT d’utiliser des guillemets doubles dans le nom du produit : supprimez-les ou remplacez-les par des guillemets simples.
champ Montant (obligatoire). Dans ce champ, indiquez le prix du produit.
menu Informations supplémentaires. En cliquant sur ce bouton, des champs supplémentaires pour générer le lien s’ouvriront
Description de la commande
Remise en roubles
Variable avec l’email de l’acheteur
Variable avec le numéro de téléphone de l’acheteur
Durée de vie du lien
ID du produit pour l’abonnement (pour créer des paiements récurrents)
Contenu payé
case à cocher Notifications de clic. Pour suivre le passage par le lien de paiement, vous pouvez cocher la case. Dans ce cas, lorsqu’on clique sur le bouton, une notification indiquant qu’un passage par le lien a été effectué arrivera dans la conversation avec le client dans Salebot

Cette notification peut servir à configurer la logique ultérieure du bot.
De nombreux systèmes de paiement prennent en charge les caisses en ligne cloud, nécessaires selon la loi 54-FZ. Lisez les particularités d’émission des reçus sur le site du système de paiement choisi pour éviter une situation gênante avec l’administration fiscale.
Voici à quoi ressemble la page de paiement qui s’ouvre après avoir cliqué sur le lien dans le bouton Paiement :

Paramètres supplémentaires pour générer le lien de paiement

champ Description de la commande. Les informations saisies dans ce champ seront affichées sur la page de paiement dans le champ Données supplémentaires
champ Remise. Dans ce champ, vous pouvez indiquer le montant de la remise en roubles ou en roubles et centimes. Pour saisir un montant avec des centimes, utilisez un point comme séparateur : 50.99 Sur la page de paiement, le champ Montant à payer indiquera le montant après remise, et le prix principal du produit sera barré.
Champ Variable avec l’email de l’acheteur (facultatif si le numéro de téléphone est fourni) Ce champ indique l’email de l’utilisateur (client). Vous pouvez y mettre la variable dans laquelle l’email de l’utilisateur est stocké.
Par exemple, #{email}
Champ Variable avec le numéro de téléphone de l’acheteur (facultatif si l’email est fourni). Dans ce champ, vous pouvez indiquer la variable dans laquelle le numéro de téléphone de l’acheteur est enregistré au format 79000000000 Par exemple, #{phone}
L’email et/ou le téléphone doivent obligatoirement être présents
champ Durée de vie du lien. Vous pouvez indiquer une date au format jj.mm.aaaa hh:mm (par exemple 25.01.2021 11:00) ou utiliser des variables pour définir la date d’expiration du lien.
Exemple d’utilisation d’une variable : #{link_expired}
champ ID du produit par abonnement. Pour effectuer un paiement récurrent, transmettez la valeur de l’ID du produit. Pour créer un abonnement, il faut créer un produit d’abonnement.
Instructions détaillées pour créer un produit d’abonnement : https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski
Si vous transmettez la valeur de l’ID du produit par abonnement, le montant du paiement n’est pas pris en compte. Les données du produit seront récupérées depuis la fiche produit dans l’espace personnel Prodamus
Le numéro de téléphone indiqué lors du paiement sera nécessaire pour gérer l’abonnement.
Si vous transmettez l’ID du produit par abonnement, alors le callback en cas de paiement réussi transmettra l’ID de ce produit
Champ Contenu payé (conditionnellement obligatoire). Les données sont nécessaires à la fiscalisation des paiements Prodamus si vous n’avez pas votre propre caisse en ligne. Dans ce champ, il faut indiquer la description de l’achat, son prix et le lien vers la ressource contenant le contenu.
Par exemple: Cours « Tressage de tresses », prix 3000 roubles, lien vers la page du cours : https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911.
Ces données sont nécessaires pour la transmission à la FNS.
Bouton avec la fonction paiement
Si vous indiquez la durée de vie du lien, alors en cas de
Lorsque l’utilisateur a demandé le lien de paiement pendant sa période active (c’est-à-dire que sa durée de vie n’est pas encore expirée) et qu’il est présent dans la conversation, il ne pourra pas payer et recevra une notification du type suivant :
La date d’expiration du lien doit être postérieure à la date actuelle, sinon le client ne pourra pas non plus payer via ce lien.
2. Lorsque l’utilisateur demande le lien alors qu’il est déjà inactif Dans ce cas, le bouton n’apparaîtra tout simplement pas. Et dans les variables du client apparaîtra la variable "error_payment_button", qui contient la valeur suivante : "Erreur : la date d’expiration du lien doit être postérieure à la date actuelle".
Pour que l’utilisateur puisse payer correctement, il est souhaitable de traiter ce cas en plus.
Comment faire ?
Créez un bloc avec une condition, dans lequel vous indiquez que si une notification de ce type est reçue, error_payment_button == "Erreur : la date d’expiration du lien doit être postérieure à la date actuelle"
Avec le texte : "Désolé, vous n’avez pas eu le temps et le lien de paiement n’est plus valide" :


Variables client qui seront créées automatiquement lors de l’utilisation du bouton avec la fonction Paiement
Dès que l’utilisateur reçoit le bloc avec le bouton « Paiement », les variables client suivantes seront automatiquement créées :
Variable système du client __payments , qui stocke le montant, l’identifiant du lien créé, et sert à identifier le hook du système de paiement.
La variable système du client __payments NE DOIT PAS être supprimée ni modifiée !
Variable client error_payment_button est créée si une erreur survient lors de la génération du bouton.
La valeur de la variable error_payment_button contiendra soit le texte de l’erreur, soit la réponse en erreur du système de paiement.
Les valeurs des variables deviennent à jour lors du passage au bloc suivant
Comment traiter le résultat
Paiement réussi.
Après un paiement réussi, dans le bot AUTOMATIQUEMENT un CALLBACK arrivera, composé des 10 premiers caractères de la clé secrète du système de paiement, du mot _success et, séparé par un espace, du montant du paiement. Pour l’utiliser dans les paramètres du schéma, il suffit de le copier.
Par exemple : ovg58keefc_success 44, où :
ovg58keefc : les 10 premiers caractères de la clé secrète du système de paiement
_success : résultat du traitement de la requête (paiement réussi)
44 : montant du paiement
Les callbacks (notifications) du système de paiement ne sont PAS visibles par l’utilisateur. Ils s’affichent uniquement dans l’onglet Clients et sont visibles par l’opérateur.
Exemple d’utilisation : Étape 1. Dans le bloc « avec le bouton Paiement », ajoutons des boutons avec la fonction Paiement.
Étape 2. Dans le champ Condition de liaison entre ce bloc et le bloc « Paiement réussi », indiquons le callback. Cela fonctionne de la même manière si vous indiquez le callback de paiement réussi dans le champ Condition du bloc « Condition initiale ».
Important : choisissez la correspondance Complète ou Par présence de mots-clés
❗️Si vous décidez de vérifier le paiement précisément sur la flèche conditionnelle, alors réfléchissez à la logique de votre schéma. Si le client quitte le bloc via la transition conditionnelle avec callback, il n’y aura pas de passage vers le bloc. Il est logique d’utiliser cette méthode de vérification uniquement lorsque le client ne change pas de position dans l’entonnoir (position dans le schéma). Dans les schémas où le client se déplace entre les blocs, il vaut mieux utiliser l’option en indiquant le callback dans le bloc « Condition initiale ».

Paiement réussi pour les produits avec abonnement automatique.
Après un paiement réussi, dans le bot AUTOMATIQUEMENT un CALLBACK arrivera, composé des 10 premiers caractères de la clé secrète du système de paiement, du mot _success et du ID du produit par abonnement, séparé par un espace
Par exemple : 214009eefc_success 618117, où :
009eefc : 10 caractères de la clé secrète du système de paiement
_success : résultat du traitement de la requête (paiement réussi)
618117: ID du produit par abonnement

Paiement en erreur
En cas d’erreur lors du paiement dans le bot AUTOMATIQUEMENT un CALLBACK arrivera, composé des 10 caractères de la clé secrète du système de paiement, du mot _fail et, séparé par un espace, du montant du paiement
Par exemple, ovg58keefc_fail 44 , où
ovg58keefc : 10 caractères de la clé secrète du système de paiement
_fail : résultat du traitement de la requête - le paiement n’a pas été effectué ou comporte une erreur.
44 : montant du paiement
Cela dépend du système de paiement. Tous les systèmes de paiement n’envoient pas de callback d’erreur de paiement.
Si le montant indiqué dans les paramètres du bouton diffère du montant payé par le client, alors AUTOMATIQUEMENT un CALLBACK arrivera, composé des 10 caractères de la clé secrète du système de paiement, du mot _different_amounts et, séparé par un espace, de l’ID unique du paiement
Par exemple : ovg58keefc_different_amounts 123456 , où :
ovg58keefc : 10 caractères de la clé secrète du système de paiement
_different_amounts : résultat du traitement de la requête (le montant du paiement diffère de celui du lien)
123456 : ID unique du paiement
Fonction get_prodamus_payment_url dans la Calculatrice
Pour générer un lien de paiement, vous pouvez utiliser la fonction get_prodamus_payment_url dans le bloc Calculatrice.
Dans le champ Calculatrice, nous affectons à la variable la valeur de la fonction get_prodamus_payment_url
Le nom de la variable est défini par vous-même. Les captures d’écran montrent des exemples de noms de variables.
Dans cette variable sera enregistrée le lien de paiement. Vous pouvez afficher la variable à l’écran sous forme de lien dans le message ou la placer sur un bouton avec le texte « Payer ».
EXEMPLE de lien de paiement : https://payform.ru/7p3JR8/
Exemple 1 :

votre_variable = get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Paramètres de la fonction :
amount
montant à payer. Vous pouvez transmettre un entier ou un nombre avec un point. Par exemple 25 ou 52.5 (paramètre obligatoire)
product_name
Nom du produit. (paramètre obligatoire)
expired
durée de vie du lien de paiement, au format jj.mm.aaaa (par exemple 25.01.2021). Vous pouvez aussi, dans le champ « Calculatrice" indiquer : expired = current_date + 2 (le lien sera valide 2 jours jusqu’à 00:00). expired on peut aussi indiquer une date avec une heure précise, séparée par un espace, au format jj.mm.aaaa hh:mm (par exemple : 25.01.2021 12:23). On peut aussi utiliser des variables standard, par exemple définissons une durée de validité du lien de 30 minutes :
time = current_time + 30
expired = "#{current_date} #{time}"
Pour ignorer ce paramètre, transmettez à la place une paire de guillemets simples ou doubles, ou la valeur None
customer_phone
numéro de téléphone de l’acheteur, facultatif si le paramètre customer_email Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
customer_email
email de l’acheteur, facultatif si le paramètre customer_phone Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
discount
montant de la remise. On transmet un nombre entier ou un nombre avec point : 25 ou 63.5 Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
description
description du produit (si non renseigné, se remplit par 'Paiement de la facture order_id') Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
extra_params
paramètres supplémentaires qui n’existent pas dans cette fonction. Les paramètres supplémentaires possibles peuvent être consultés via le lien dans la documentation de l’API du système de paiement https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov Exemple : extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}
Pour ignorer ce paramètre, transmettez à la place une paire de guillemets simples/une paire de guillemets doubles ou la valeur None.
products_for_receipt
Chaîne de 50 à 4000 caractères au format "description de la commande - prix - lien vers la ressource achetée”.
Par exemple :
“Cours « Pêche à la brème », prix 4999 roubles, lien vers la page du cours : https://www.lovilescha.ru/courses/poimai_kilogram/". Obligatoire, si vous n’avez pas votre propre caisse en ligne, pour la fiscalisation des paiements via Prodamus.
extra_params = {"payments_limit": "3"}
products_for_receipt = "Cours « Pêche à la brème », prix 4999 roubles, lien vers la page du cours : https://www.lovilescha.ru/courses/poimai_kilogram/"
link_prodamus_url = get_prodamus_payment_url(4999, 'Cours « Pêche à la brème »', '27.03.2023 17:00', '79167777771', 'mail@mail.com', 20, 'Meilleur cours du marché', extra_params, products_for_receipt)
Si, dans le bloc, plusieurs fonctions permettent d’obtenir le lien et qu’une erreur survient, la valeur de l’erreur sera enregistrée dans la variable error_payment_func
L’erreur sera enregistrée par la dernière fonction dans la Calculatrice
Création d’un lien à l’aide de la variable payment_sum et de paramètres supplémentaires
Attention : à la variable payment_sum est affectée la valeur de la dernière, après les variables facultatives payment_description, product_name etc.
Pour générer un lien de paiement, il vous suffit de définir dans le champ Calculatrice la valeur de la variable payment_sum. Juste après, la variable prodamus_pay_url.
EXEMPLE de lien de paiement :: https://payform.ru/7p3JR8/
Cette variable peut être affichée à l’écran sous forme de lien dans le message ou placée sur un bouton avec le texte « Payer ».
Avant de déclarer la variable payment_sum vous pouvez également indiquer les variables facultatives suivantes :
product_name
nom du produit (si non indiqué, se remplit par 'Paiement de la facture order_id') - la capture d’écran ci-dessous montre où il s’affiche
payment_description
description du produit (si non indiqué, se remplit par 'Paiement de la facture order_id', voir capture ci-dessous) - la capture d’écran ci-dessous montre où il s’affiche
discount_value
montant de la remise (par exemple discount_value = 25 ou discount_value = 50.25)
customer_phone
numéro de téléphone de l’acheteur, facultatif si le paramètre
customer_email
email de l’acheteur
link_expired
durée de vie du lien de paiement, au format jj.mm.aaaa (par exemple 25.01.2021). Vous pouvez aussi dans le champ "Calculatrice" indiquer : link_expired = current_date + 2 (le lien sera valide 2 jours jusqu’à 00:00)
link_expired
on peut aussi indiquer une date avec une heure précise, séparée par un espace, au format jj.mm.aaaa hh:mm (par exemple : 25.01.2021 12:23). On peut aussi utiliser des variables standard, par exemple définissons une durée de validité du lien de 30 minutes :
time = current_time + 30 link_expired = "#{current_date} #{time}"
currency
devise du paiement, par défaut « rub ». Liste complète des arguments :
rub
usd
eur
kzt Ce paramètre doit être transmis en minuscules.
payment_title
titre du paiement (jusqu’à 127 caractères). Si non indiqué, le texte suivant est renseigné : “Paiement de la facture payment_id” (payment_id - identifiant de la commande dans Salebot)
payment_description
courte description du paiement (jusqu’à 127 caractères)
locale
langue de la page de paiement, indiquée au format en-US, fr-XC, etc. Par défaut - ‘ru-Ru’. La liste complète est disponible via le lien https://developer.paypal.com/api/rest/reference/locale-codes/
products_for_receipt
Chaîne de 50 à 4000 caractères au format "description de la commande - prix - lien vers la ressource achetée”.
Par exemple :
“Cours « Pêche à la brème », prix 4999 roubles, lien vers la page du cours : https://www.lovilescha.ru/courses/poimai_kilogram/".
Obligatoire, si vous n’avez pas votre propre caisse en ligne, pour la fiscalisation des paiements via Prodamus.
payment_sum
(obligatoire) montant du paiement
Variables discount_value, customer_phone, customer_email et link_expired sont également valables pour les abonnements.

Exemple d’implémentation.
Dans le premier bloc, nous définissons le montant du paiement :

Ensuite, nous affichons au bon endroit l’URL, le lien prodamus_pay_url :

prodamus_available_payment_methods est déclaré avant payment_sum.
Valeurs possibles :
AC
paiement par carte émise en RF
ACkz
paiement par carte du Kazakhstan
ACf
paiement par cartes des pays de la CEI, sauf la RF
ACEURNMBX
Paiement par carte en EUR depuis tous les pays, sauf la Fédération de Russie et la Biélorussie
SBP
Paiement rapide, sans saisie des données de la carte. Pour les cartes russes
QW
Portefeuille Qiwi
PC
YooMoney
GP
terminal de paiement
sbol
Sberbank en ligne facture - Paiement par facture paiement en plusieurs fois - En plusieurs fois avec Prodamus
installment_5_21
En plusieurs fois avec Prodamus sur 3 mois
installment_6_28
En plusieurs fois avec Prodamus sur 6 mois
installment_10_28
En plusieurs fois avec Prodamus sur 10 mois
installment_12_28
En plusieurs fois avec Prodamus sur 12 mois installment_0_0_3 - Paiement échelonné de Tinkoff sur 3 mois
installment_0_0_4
Paiement échelonné de Tinkoff sur 4 mois
installment_0_0_6
Paiement échelonné de Tinkoff sur 6 mois
installment_0_0_10
Paiement échelonné de Tinkoff sur 10 mois
installment_0_0_12
Paiement échelonné de Tinkoff sur 12 mois
installment_0_0_24
Paiement échelonné de Tinkoff sur 24 mois
installment_0_0_36
Paiement échelonné de Tinkoff sur 36 mois
credit
Crédit de Tinkoff
vsegdada_installment_0_0_4
Paiement échelonné VsegdaDa sur 4 mois (ne fonctionne pas avec available_payment_methods)
vsegdada_installment_0_0_6
Paiement échelonné de VsegdaDa sur 6 mois
vsegdada_installment_0_0_10
Paiement échelonné de VsegdaDa sur 10 mois
vsegdada_installment_0_0_12
Paiement échelonné de VsegdaDa sur 12 mois sans surcoût
vsegdada_installment_0_0_24
Paiement échelonné de VsegdaDa sur 24 mois
vsegdada_installment_0_0_36
Paiement échelonné de VsegdaDa sur 36 mois
sbrf_installment_0_0_6
Paiement échelonné de Sberbank sur 6 mois
sbrf_installment_0_0_10
Paiement échelonné de Sberbank sur 10 mois
sbrf_installment_0_0_12
Paiement échelonné de Sberbank sur 12 mois
sbrf_installment_0_0_24
Paiement échelonné de Sberbank sur 24 mois
sbrf_installment_0_0_36
Paiement échelonné de Sberbank sur 36 mois
otp_installment_0_0_6
Paiement échelonné de la banque OTP sur 6 mois
otp_installment_0_0_10
Paiement échelonné de la banque OTP sur 10 mois
otp_installment_0_0_12
Paiement échelonné de la banque OTP sur 12 mois
otp_installment_0_0_24
Paiement échelonné de la banque OTP sur 24 mois
otp_installment_0_0_36
Paiement échelonné de la banque OTP sur 36 mois
mts_installment_0_0_6
Paiement échelonné de la banque MTS sur 6 mois
mts_installment_0_0_10
Paiement échelonné de la banque MTS sur 10 mois
mts_installment_0_0_12
Paiement échelonné de la banque MTS sur 12 mois
mts_installment_0_0_24
Paiement échelonné de la banque MTS sur 24 mois
mts_installment_0_0_36
Paiement échelonné de la banque MTS sur 36 mois
monetaworld
Cartes bancaires du monde entier, sauf la Fédération de Russie
sbrf_bnpl
En plusieurs fois avec Sber
Il est possible de transmettre plusieurs valeurs en les séparant par une barre verticale. Par exemple : prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency - un autre paramètre supplémentaire pour transmettre le montant dans une devise donnée. Valeurs possibles de la devise : kzt - pour le tenge eur - pour l'euro usd - pour le dollar
Le montant indiqué dans le lien sera alors dans la devise spécifiée.
Lors de la réception du callback payment_callback il faut se baser sur le paramètre currency et currency_sum, dans lequel se trouveront la devise et le montant dans cette devise.
Important ! Vérifiez si vous avez sur votre page un moyen de paiement dans la devise requise, car s'il est absent, la redirection se fera vers une page sans moyens de paiement. Les moyens se подключent via le support. Vous pouvez voir ceux qui sont activés dans les paramètres de la page ou en générant un lien de paiement


Comment traiter le résultat
Paiement réussi
Important ! Après un paiement réussi ou non réussi, des callbacks arriveront au bot, grâce auxquels vous pourrez comprendre qu'un paiement a bien été effectué. Dans le système, vous les voyez comme des messages provenant de l'utilisateur ; pour empêcher l'utilisateur de les envoyer, ils se composent d'une clé secrète et d'un suffixe indiquant le statut, par exemple : 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success ou 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail. De plus, après un paiement réussi, la variable prodamus_payment_completed est définie sur True.
Attention ! Les callbacks arrivent avec un certain délai, donc après l'affichage du lien de paiement à l'utilisateur, nous recommandons d'envoyer un message du type : “Après le paiement, attendez le message confirmant la réussite du paiement”
IMPORTANT ! Pour les liens créés à l'aide du bouton avec la fonction Paiement ou à l'aide de la fonction dans le Calculateur, après le paiement dans le bot AUTOMATIQUEMENT un CALLBACK arrivera, composé des caractères de la clé secrète du système de paiement, du mot _success et, séparé par un espace, du montant du paiement. Pour l’utiliser dans les paramètres du schéma, il suffit de le copier.
Par exemple : ovg58keefc_success, où :
ovg58keefc : clé secrète en entier
_success : résultat du traitement de la requête (paiement réussi)
Par exemple, vous pouvez gérer un paiement réussi avec un bloc conditionnel et afficher le message approprié à l'utilisateur :

Le type de comparaison doit être "Correspondance exacte"
Pour effectuer un nouveau paiement, il faut obligatoirement remettre payment_sum à zéro, puis effacer le lien déjà généré et seulement après cela réaffecter la variable payment_sum pour obtenir un nouveau lien
Désactivation/réactivation de l'abonnement
Il existe également dans Prodamus des notifications concernant l'activation/la désactivation de l'abonnement :

"L'abonné a désactivé l'abonnement" - si l'abonnement est annulé manuellement (par exemple, l'abonné a refusé l'abonnement).
Peut arriver avant la fin de la période payée en cours. Implique une action à votre discrétion : ignorer, ou mettre sous surveillance pour tenter de récupérer l'abonné.
"L'abonné a réactivé l'abonnement" - rétablissement de l'abonnement.
Peut arriver si l'abonné a réactivé l'abonnement avant la fin de la période payée en cours. Implique une action à votre discrétion : ignorer, ou supprimer de la liste de surveillance de récupération.
"Désactivation de l'abonnement" - si l'abonnement est désactivé après plusieurs tentatives de prélèvement infructueuses
Comment enregistrer les valeurs du callback
Après réception de la notification de paiement réussi, le callback de Prodamus sera enregistré dans la demande du client (variable payment_callback), avec toutes les données du paiement reçu. Vous pouvez en extraire les données nécessaires et les utiliser comme vous le souhaitez. Exemple de callback :
{"date": "2021-03-30T11:44:43+03:00", "order_id": "757679", "order_num": "", "domain": "demo.payform.ru", "sum": "14.50", "customer_phone": "+77777777777", "customer_extra": "Ici la description du produit", "payment_type": "Carte plastique Visa, MasterCard, MIR", "commission": "3.5", "commission_sum": "0.51", "attempt": "1", "discount_value": "10.5", "products[0][name]": "Accès aux supports de formation", "products[0][price]": "14.50", "products[0][quantity]": "1", "products[0][sum]": "14.50", "payment_status": "success", "payment_status_description": "Paiement réussi", "payment_init": "manual"}
Lors de la génération du lien, vous pouvez indiquer les variables product_name et payment_description. Alors, lors de la réception du callback, vous pourrez les récupérer comme ceci :
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')

Attention : à la variable payment_sum est affectée la valeur de la dernière, après les variables facultatives payment_description, product_name
Le montant peut être obtenu ainsi
summa = get(payment_callback,'sum')
Quels callbacks sont disponibles
En plus des callbacks principaux concernant les paiements réussis, un message est affiché dans le chat avec l'utilisateur, message que l'utilisateur ne voit pas, avec les textes suivants :
L'abonné a désactivé l'abonnement (plus de détails ici)
L'abonné a réactivé l'abonnement (plus de détails ici)
Abonnement terminé
Paiement non réussi - ajout explicatif (sur la capture d'écran ci-dessus)
Notification du prochain prélèvement - date et heure du prochain prélèvement
Demande de paiement échelonné avec le statut
Exemples de callbacks dans la conversation avec le client :
L'abonné a désactivé l'abonnement
L'abonné a réactivé l'abonnement
Abonnement terminé
Paiement non réussi - Fonds insuffisants.
Paiement non réussi - La carte a expiré.
Paiement non réussi - Limite de carte dépassée.
Paiement non réussi - Carte perdue
Paiement non réussi - Erreur système
Paiement non réussi - Opération refusée. Veuillez contacter la banque émettrice de la carte.
Paiement non réussi - Refus de l'opération par la banque émettrice.
Paiement non réussi - Refus de l'opération par la banque.
Notification du prochain prélèvement - jj.mm.aaaa hh:mm
Demande de paiement échelonné approuvée
Demande de paiement échelonné annulée
Demande de paiement échelonné refusée
Vous pouvez lire plus en détail la description des erreurs ici :
Si vous le souhaitez, vous pouvez configurer l'envoi d'un message à l'utilisateur. À titre d'exemple, nous enverrons un message indiquant que le prélèvement automatique a échoué. Pour la notification de paiement non réussi avec une raison précise, vous pouvez configurer un bloc de réponse, par exemple, comme ceci :

Pour envoyer un message à tous les prélèvements échoués, quelle qu'en soit la raison, vous pouvez configurer comme suit :

Et pour tous les callbacks dans lesquels apparaît le texte Paiement non réussi, l'utilisateur recevra un message avec le texte que vous avez indiqué.
Comment créer des paiements par abonnement
Comment créer un abonnement
Pour créer un abonnement, il faut créer un produit d'abonnement. Instructions détaillées pour le faire : https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski
Ensuite, copiez l'id du produit d'abonnement ; ci-dessous, il est indiqué où le trouver :
Pour générer un lien de paiement d'abonnement, vous devez définir la valeur (id du produit d'abonnement) de la variable prodamus_subscription, juste après cela la variable prodamus_pay_url.

La variable prodamus_pay_url peut être affichée à l'écran via un lien ou placée sur un bouton avec le texte "Payer". Le lien ressemble à ceci : https://payform.ru/7p3JR8/
Le traitement du résultat se fait de la même manière que pour un paiement unique (lire ci-dessus).
Après un abonnement réussi, la variable customer_phone, correspondant au numéro de téléphone saisi lors du paiement, sera ajoutée à l'utilisateur. Le numéro de téléphone est nécessaire pour la gestion de l'abonnement.
customer_phone est nécessaire pour la gestion de l'abonnement si customer_email n'est pas transmis
Comment créer un lien d'abonnement avec la fonction get_prodamus_subscription_url
Voyons une autre façon de générer un lien de paiement pour un produit par abonnement.
Nous créons un produit d'abonnement dans le compte Prodamus. Instructions détaillées pour le faire : https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski
Ensuite, copiez l'id du produit d'abonnement ; ci-dessous, il est indiqué où le trouver :
Pour obtenir le lien de paiement d'un produit par abonnement dans le Calculateur, nous indiquons la fonction
get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Exemple 1 : Lien de paiement d'un produit par abonnement

link = get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Paramètres de la fonction :
subscription_id
ID du produit d'abonnement. Vous pouvez copier l'ID dans le compte Prodamus (paramètre obligatoire)
product_name
Nom du produit. (paramètre obligatoire)
expired
durée de vie du lien de paiement, au format jj.mm.aaaa (par exemple 25.01.2021). Vous pouvez aussi, dans le champ « Calculatrice" indiquer : expired = current_date + 2 (le lien sera valide 2 jours jusqu’à 00:00). expired on peut aussi indiquer une date avec une heure précise, séparée par un espace, au format jj.mm.aaaa hh:mm (par exemple : 25.01.2021 12:23). On peut aussi utiliser des variables standard, par exemple définissons une durée de validité du lien de 30 minutes :
time = current_time + 30
expired = "#{current_date} #{time}"
Pour ignorer ce paramètre, transmettez à la place une paire de guillemets simples ou doubles, ou la valeur None
customer_phone
numéro de téléphone de l’acheteur, facultatif si le paramètre customer_email Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
customer_email
email de l’acheteur, facultatif si le paramètre customer_phone Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
discount
montant de la remise. On transmet un nombre entier ou un nombre avec point : 25 ou 63.5 Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
description
description du produit (si non renseigné, se remplit par 'Paiement de la facture order_id') Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
extra_params
paramètres supplémentaires qui n’existent pas dans cette fonction.
Les paramètres supplémentaires possibles peuvent être consultés via le lien dans la documentation de l’API du système de paiement https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov
Exemple : extra_params = {"payments_limit": "3"}
Pour ignorer ce paramètre, transmettez à la place une paire de guillemets simples/une paire de guillemets doubles ou la valeur None.
products_for_receipt
Chaîne de 50 à 4000 caractères au format "description de la commande - prix - lien vers la ressource achetée”.
Par exemple :
“Cours « Pêche à la brème », prix 4999 roubles, lien vers la page du cours : https://www.lovilescha.ru/courses/poimai_kilogram/".
Obligatoire, si vous n’avez pas votre propre caisse en ligne, pour la fiscalisation des paiements via Prodamus.
extra_params = {"payments_limit": "3"}
products_for_receipt = "Cours ‘Pêche à la brème’, coût de l'abonnement mensuel 2000 roubles, lien vers la page du cours : https://www.lovilescha.ru/courses/poimai_kilogram/"
link_prodamus_sub = get_prodamus_subscription_url(618988, 'Cours ‘Pêche à la brème’', '27.03.2023 17:02', '79167777771', 'mail@mail.com', 20, 'Meilleur cours du marché', extra_params, products_for_receipt)
Si, dans le bloc, plusieurs fonctions permettent d’obtenir le lien et qu’une erreur survient, la valeur de l’erreur sera enregistrée dans la variable error_payment_func
L’erreur sera enregistrée par la dernière fonction dans la Calculatrice
Comment gérer le statut de l'abonnement
La méthode fonctionne uniquement sur de vrais abonnements ; en mode démo, il n'y a pas de liaison avec la carte
Pour gérer l'abonnement, l'un des paramètres obligatoires customer_phone ou customer_email doit être transmis.
Pour permettre la désinscription de l'utilisateur de l'abonnement, il faut créer un bloc et appeler la fonction : https://store.salebot.pro/function/delete_subscription_prodamus
Avec les paramètres :
{ "customer_phone": "#{customer_phone}", "id_subscription":"#{prodamus_subscription}", "url":"https://demo.payform.ru/", "secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66", "switcher":"0" "profile_id":"12345" }
url - URL du formulaire de paiement indiquée dans les paramètres du constructeur secret_key - clé secrète des paramètres id_subscription - id du produit d'abonnement customer_phone - téléphone de l'abonné switcher = 0 signifie l'arrêt de l'abonnement ; si vous transmettez 1, l'abonnement est réactivé. profile_id - ID du profil dans le système Prodamus
Attention !
Si l'ID du profil arrive, sa valeur sera enregistrée dans la variable profile_id.
profile_id peut être transmis à la fonction delete_subscription_prodamus à la place de customer_phone ou customer_email pour annuler l'abonnement.
Exemple de configuration du bloc d'abonnement :

Veuillez noter que la fonction renvoie status, que nous conservons et pouvons traiter à notre convenance, lors de la désactivation/réactivation réussie status égal à ok
Fonction pour gérer l'abonnement
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id)
id_subscription - id du produit d'abonnement
switcher = 0 signifie l'arrêt de l'abonnement ; si vous transmettez 1, l'abonnement est réactivé.
customer_phone - téléphone de l'abonné - facultatif, si customer_email est transmis
customer_email - email de l'abonné - facultatif, si customer_phone est transmis
profile_id - ID du profil dans le système Prodamus

Exemple : paramètre transmis customer_phone, customer_email omis
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
Exemple 2 : paramètre transmis customer_email, customer_phone omis
stat = prodamus_subscription_switch_status('618117', '0', '', 'examp@mail.com')
La fonction renverra ok si tout s'est bien passé ou la description de l'erreur
Gestion des remises dans l'abonnement
La fonction définit le montant de la remise pour les paiements suivants de l'abonnement. La remise peut être définie pour un nombre limité ou illimité de prélèvements.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id) où : subscription_id - ID de l'abonnement discount - nombre décimal avec une précision de deux chiffres après le point, la valeur doit être supérieure à zéro et ne pas dépasser le prix de base de l'abonnement customer_phone - numéro de téléphone du client au format : +79999999999 (paramètre facultatif, si la variable customer_email existe (apparaît après le premier paiement, voir description ci-dessus)) num - nombre de paiements auxquels la remise s'appliquera (paramètre facultatif ; si non transmis, le nombre de paiements avec remise n'est pas limité)
profile_id - ID du profil dans le système Prodamus En cas de succès de la requête, la fonction renverra 'ok' ; si la requête échoue, la fonction renverra sa description.
Le montant de la remise et l'intervalle ne sont réécrits QUE si la fonction est appelée à nouveau avec de nouvelles valeurs !
Exemples :
1. Mise en place d'une remise de 1 rouble sur tous les prochains paiements automatiques (le numéro de téléphone n'est pas indiqué, car il sera automatiquement récupéré depuis la variable customer_phone, et le nombre de prélèvements avec remise est par défaut sur toute la durée de l'abonnement)
r = prodamus_subscription_discount('624034', '1')
2. Mise en place d'une remise de 2 roubles sur les 3 prochains prélèvements (le numéro de téléphone est remplacé par des guillemets vides, car il sera automatiquement récupéré depuis la variable customer_phone)
r = prodamus_subscription_discount('624034', '2', '', '3')
3. Exemple de mise en place d'une remise sous forme de nombre avec une partie décimale jusqu'aux centièmes (séparateur : point), les données numériques sont indiquées sans guillemets, le numéro de téléphone est transmis via une variable

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Comment définir la date du prochain paiement d'abonnement
Grâce à cette méthode, vous pouvez décaler la date du prochain paiement de l'abonnement. La date ne peut être décalée que vers l'avenir par rapport à la date actuelle définie pour le prochain paiement. Cela augmente ainsi la durée de présence dans le club.
Par exemple, cela peut être utilisé comme bonus pour les abonnés.
Pour cela, il faut utiliser la fonction :
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id) où :
où :
subscription_id - ID de l'abonnement date - date au format jj.mm.aaaa hh:mm ou jj.mm.aaaa, alors l'heure sera 00:00 customer_phone - n'est pas obligatoire ; si elle n'est pas transmise, elle sera récupérée depuis la variable customer_phone ; si elle n'y est pas non plus, la fonction ne fonctionnera pas profile_id - ID du profil dans le système Prodamus
Comment transmettre des paramètres à Prodamus
Pour transmettre à Prodamus les paramètres dont vous avez besoin (par exemple, la date de début de l'abonnement, la désactivation du paiement échelonné, etc.), ajoutez au début du nom de la variable prodamus_
Ainsi, lors de la génération du lien de paiement, ces paramètres seront transmis automatiquement au système de paiement.
Comment tester le paiement
Nous ne testons que le paiement !
Afin qu'aucun fonds ne soit débité de votre compte lors des tests d'intégration et de configuration des tunnels de paiement, vous pouvez utiliser des cartes de test
Commencez par passer votre page de paiement en mode DÉMO ⤵
N'oubliez pas d'appuyer sur le bouton "Enregistrer"

Pour effectuer un paiement test, vous pouvez utiliser des comptes de test
Cartes de test Sberbank :
MIR Numéro de carte 2202 2050 0001 2424 Date d'expiration 05/35 Code de vérification au dos 669
MasterCard Numéro de carte 5469 9801 0004 8525 Date d'expiration 05/26 Code de vérification au dos 041 Code de vérification 3-D Secure 111111
Visa Numéro de carte 4006 8009 0096 2514 Date d'expiration 05/26 Code de vérification au dos 941 Code de vérification 3-D Secure 111111
! Avec les comptes de test, tous les tunnels et intégrations configurés fonctionneront comme lors d'un paiement normal !
Le formulaire a été testé
Pour accepter des paiements en argent réel, il faut passer le formulaire en mode production. Autrement dit, mettre le bouton du mode démo dans la position afin qu'il devienne rose pâle
Mis à jour