Prodamus (RU)
Disponible uniquement sur 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 la recevez après l’inscription, elle a la forme suivante : demo.payform.ru
La clé secrète peut être obtenue dans l’espace personnel ; c’est également là qu’il faut renseigner l’URL pour les notifications.

Instructions détaillées pour le faire : https://help.prodamus.ru/payform.ru-onlain-oplaty/prochee/url-dlya-uvedomlenii-i-sekretnyi-klyuch
Adresse pour les 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 pour les notifications doit être renseignée dans les paramètres du système de paiement à deux endroits : onglet Paramètres du formulaire — pour les paiements ordinaires et onglet Abonnements — pour les paiements par abonnement.

Adresse pour les 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 pour les 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 « Acquiring »

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

IMPORTANT ! l’url du formulaire de paiement doit être indiquée SANS https://
La connexion est maintenant terminée. Voyons maintenant comment utiliser cette fonctionnalité.
Comment générer un lien de paiement
Vous pouvez générer un lien de paiement dans le bloc DE L’UN des méthodes disponibles :
Création d’un lien à l’aide de la variable payment_sum et de paramètres supplémentaires (version obsolète mais 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 le lien de paiement, il faut indiquer dans les paramètres du bouton 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 souhaitez recevoir un reçu de Prodamus.
Lors du passage à 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, alors 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 indiqué sur le bouton avec le lien de paiement dans le message
champ Fonction. Pour créer un bouton permettant de générer un lien de paiement, choisissez la fonction Paiement
champ Système de paiement. La liste affiche les systèmes de paiement connectés au projet
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 s’ouvriront pour générer le lien
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 Avec notification de clic. Pour suivre le passage via le lien de paiement, vous pouvez cocher la case. Dans ce cas, lorsqu’un clic sur le bouton est effectué, une notification arrivera dans la conversation avec le client dans Salebot indiquant qu’un passage par le lien a eu lieu

Cette notification peut être utilisée pour configurer la logique de fonctionnement ultérieure du bot.
De nombreux systèmes de paiement prennent en charge les caisses en ligne cloud, elles sont 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 afin d’éviter une situation gênante avec l’administration fiscale.
Voici à quoi ressemble la page de paiement qui s’ouvre lors du passage par 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 indiquées 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 kopecks. Pour indiquer un montant avec des kopecks, utilisez un point comme séparateur : 50.99 Sur la page de paiement, le champ Montant à payer affichera le montant avec la remise prise en compte, et le prix initial du produit sera barré.
Champ Variable avec l’email de l’acheteur (facultatif, si le numéro de téléphone est transmis) Dans ce champ, indiquez l’email de l’utilisateur (client). Vous pouvez indiquer 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 transmis). Dans ce champ, vous pouvez indiquer la variable dans laquelle est enregistré le numéro de téléphone de l’acheteur au format 79000000000 Par exemple, #{phone}
L’email et/ou le téléphone doivent обязательно ê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 pour l’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 d’abonnement, le montant du paiement n’est pas pris en compte. Les données du produit seront obtenues à partir de la fiche produit dans le compte 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 d’abonnement, alors, dans le callback lors d’un paiement réussi, l’ID de ce produit sera transmis
Champ Contenu payé (conditionnellement obligatoire). Ces données sont nécessaires pour la fiscalisation du paiement par 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 cheveux », 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 à l’administration fiscale.
Bouton avec la fonction Paiement
Si vous indiquez la durée de vie du lien, alors, dans le cas
Lorsque l’utilisateur a demandé le lien de paiement pendant sa période d’activité (c’est-à-dire avant l’expiration de sa durée de vie) et qu’il est présent dans la conversation, il ne pourra pas payer et recevra une notification du type suivant :
La durée de validité 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 durée de validité du lien doit être postérieure à la date actuelle".
Pour que l’utilisateur puisse payer correctement, il est souhaitable de traiter ce cas séparément.
Comment faire ?
Créez un bloc avec une condition, dans lequel vous indiquerez, si une notification de ce type est reçue, error_payment_button == "Erreur : La durée de validité 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 créées automatiquement :
Variable système du client __payments , qui stocke le montant et l’identifiant du lien créé, nécessaire pour identifier le webhook 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 créée si une erreur s’est produite 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 du système de paiement avec l’erreur.
Les valeurs des variables deviennent effectives 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 apparaissent uniquement dans l’onglet Clients et sont visibles par l’opérateur.
Exemple d’utilisation : Étape 1. Dans le bloc « avec bouton Paiement », ajoutez des boutons avec la fonction Paiement.
Étape 2. Dans le champ Condition de liaison de ce bloc vers le bloc « Paiement réussi », indiquez 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 directement sur la flèche selon la condition, réfléchissez à la logique de votre schéma. Si le client quitte le bloc avec 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 seulement lorsque le client ne change pas de position dans l’entonnoir (sa place dans le schéma). Dans les schémas où le client se déplace entre les blocs, il est préférable d’utiliser l’option avec indication du 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 séparé par un espace, de l’ID du produit d’abonnement
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 d’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 s’est terminé par 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 en cas 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 payé diffère du montant dans le lien)
123456 : ID unique du paiement
Fonction get_prodamus_payment_url dans le Calculateur
Pour générer un lien de paiement, vous pouvez utiliser la fonction get_prodamus_payment_url dans le bloc Calculateur.
Dans le champ Calculateur, nous attribuons à la variable la valeur de la fonction get_prodamus_payment_url
Vous définissez vous-même le nom de la variable. Sur les captures, ce sont des exemples de noms de variables.
Le lien de paiement sera enregistré dans cette variable. La variable peut être affichée à l’écran sous forme de lien dans un message ou placée 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 une valeur entière ou décimale. 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 également, dans le champ "Calculateur" indiquer : expired = current_date + 2 (le lien sera valable 2 jours jusqu’à 00:00). expired vous pouvez également indiquer une date avec l’heure exacte, séparée par un espace, au format jj.mm.aaaa hh:mm (par exemple : 25.01.2021 12:23). Vous pouvez également utiliser des variables standard, par exemple définissons la durée de validité du lien à 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 ou un nombre avec un point : 25 ou 63.5 Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
description
description du produit (si non indiquée, remplie avec '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 - coût - 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', '[email protected]', 20, 'Le meilleur cours du marché', extra_params, products_for_receipt)
Si plusieurs fonctions de génération de lien sont présentes dans le bloc et qu’une erreur s’est produite, 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 le Calculateur
Création d’un lien à l’aide de la variable payment_sum et de paramètres supplémentaires
Attention : à la variable payment_sum est attribuée la valeur de la dernière, après les variables facultatives payment_description, product_name etc.
Pour générer le lien de paiement, il vous suffit de définir dans le champ Calculateur 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 un message ou placée sur un bouton avec le texte « Payer ».
Avant la déclaration de la variable payment_sum vous pouvez également indiquer les variables facultatives suivantes :
product_name
nom du produit (si non indiqué, rempli avec 'Paiement de la facture order_id') — la capture ci-dessous montre où il s’affiche
payment_description
description du produit (si non indiquée, remplie avec 'Paiement de la facture order_id', voir capture ci-dessous) — la capture 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 également, dans le champ "Calculateur" indiquer : link_expired = current_date + 2 (le lien sera valable 2 jours jusqu’à 00:00)
link_expired
vous pouvez également indiquer une date avec l’heure exacte, séparée par un espace, au format jj.mm.aaaa hh:mm (par exemple : 25.01.2021 12:23). Vous pouvez également utiliser des variables standard, par exemple définissons la durée de validité du lien à 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é, rempli avec le texte : “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 sous la forme 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 - coût - 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
montant du paiement (obligatoire)
Les 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 à l’endroit souhaité l’URL, le lien prodamus_pay_url :

prodamus_available_payment_methods est déclarée avant la déclaration de payment_sum.
Valeurs possibles :
AC
paiement par carte émise en Russie
ACkz
paiement par carte du Kazakhstan
ACf
paiement par cartes des pays de la CEI, sauf la Russie
ACEURNMBX
Paiement en EUR par carte de tous les pays, sauf la Russie et la Biélorussie
SBP
Paiement rapide, sans saisie des données de la carte. Pour les cartes russes
QW
Qiwi wallet
PC
Юmoney
GP
terminal de paiement
sbol
Sberbank en ligne invoice - Paiement sur facture installment - Paiement en plusieurs fois par Prodamus
installment_5_21
Paiement en plusieurs fois par Prodamus sur 3 mois
installment_6_28
Paiement en plusieurs fois par Prodamus sur 6 mois
installment_10_28
Paiement en plusieurs fois par Prodamus sur 10 mois
installment_12_28
Paiement en plusieurs fois par Prodamus sur 12 mois installment_0_0_3 - Paiement échelonné par Tinkoff sur 3 mois
installment_0_0_4
Paiement échelonné par Tinkoff sur 4 mois
installment_0_0_6
Paiement échelonné par Tinkoff sur 6 mois
installment_0_0_10
Paiement échelonné par Tinkoff sur 10 mois
installment_0_0_12
Paiement échelonné par Tinkoff sur 12 mois
installment_0_0_24
Paiement échelonné par Tinkoff sur 24 mois
installment_0_0_36
Paiement échelonné par 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é « OTP Bank » sur 6 mois
otp_installment_0_0_10
Paiement échelonné « OTP Bank » sur 10 mois
otp_installment_0_0_12
Paiement échelonné « OTP Bank » sur 12 mois
otp_installment_0_0_24
Paiement échelonné « OTP Bank » sur 24 mois
otp_installment_0_0_36
Paiement échelonné « OTP Bank » sur 36 mois
mts_installment_0_0_6
Paiement échelonné « MTS Bank » sur 6 mois
mts_installment_0_0_10
Paiement échelonné « MTS Bank » sur 10 mois
mts_installment_0_0_12
Paiement échelonné « MTS Bank » sur 12 mois
mts_installment_0_0_24
Paiement échelonné « MTS Bank » sur 24 mois
mts_installment_0_0_36
Paiement échelonné « MTS Bank » sur 36 mois
monetaworld
Cartes des banques du monde, sauf la Russie
sbrf_bnpl
Paiement en plusieurs fois par Sber
Il est possible de transmettre plusieurs valeurs, séparées par une barre verticale. Par exemple : prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency - autre paramètre supplémentaire pour transmettre un montant dans une devise donnée. Valeurs possibles de la devise : kzt - pour le tenge eur - pour l’euro usd - pour le dollar
Alors, le montant indiqué dans le lien sera 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 lesquels se trouveront la devise et le montant dans cette devise.
Important ! Vérifiez s’il existe sur votre page un mode de paiement dans la devise souhaitée, car s’il est absent, la redirection se fera vers une page sans méthodes de paiement. Les méthodes sont activées via le support. Les méthodes activées peuvent être consultées 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 dans le bot, grâce auxquels vous pourrez savoir qu’un paiement a été effectué avec succès. Dans le système, ces callbacks apparaissent comme des messages de l’utilisateur ; pour éviter qu’un utilisateur puisse les envoyer, ils sont composés de la clé secrète et d’un suffixe d’état, 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 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, veuillez attendre 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 dans son intégralité
_success : résultat du traitement de la requête (paiement réussi)
Par exemple, vous pouvez traiter un paiement réussi avec un bloc conditionnel et afficher un message correspondant à l’utilisateur :

Le type de comparaison doit être "Correspondance exacte"
Pour effectuer un nouveau paiement, il est impératif de remettre payment_sum à zéro, ainsi que le lien précédemment généré, puis de redéfinir la variable payment_sum pour obtenir un nouveau lien
Désactivation/réactivation de l’abonnement
Dans Prodamus, il existe également des notifications concernant l’activation/désactivation de l’abonnement :

"L’abonné a désactivé l’abonnement" - si l’abonnement est annulé manuellement (par exemple, l’abonné s’est désabonné).
Peut arriver avant la fin de la période payée en cours. Cela implique une action à votre discrétion - ignorer ou mettre sous surveillance, tenter de reconquérir 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. Cela implique une action à votre discrétion - ignorer ou supprimer de la liste de suivi du retour.
"Désactivation de l’abonnement" - si l’abonnement est désactivé après plusieurs prélèvements échoués
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 à votre convenance. 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 des 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 attribué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 sur le paiement réussi, un message s’affiche 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)
L’abonnement est terminé
Paiement non réussi - avec une note explicative (comme sur la capture ci-dessus)
Notification d’un prélèvement à venir - date et heure du prochain prélèvement
Demande de paiement échelonné avec le statut
Exemples de callbacks dans le dialogue avec le client :
L’abonné a désactivé l’abonnement
L’abonné a réactivé l’abonnement
L’abonnement est terminé
Paiement non réussi - Fonds insuffisants.
Paiement non réussi - Carte expirée.
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 d’exécuter l’opération par la banque émettrice.
Paiement non réussi - Refus d’exécuter l’opération par la banque.
Notification d’un prélèvement à venir - jj.mm.aaaa hh:mm
La demande de paiement échelonné est approuvée
La demande de paiement échelonné est annulée
La demande de paiement échelonné est rejetée
Pour en savoir plus sur la description des erreurs, lisez ici :
Si vous le souhaitez, vous pouvez configurer l’envoi d’un message à l’utilisateur. Par 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 spécifique, vous pouvez configurer un bloc avec une 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 contenant 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, nous copions l’id du produit d’abonnement ; ci-dessous, il est indiqué où le trouver :
Pour générer le lien de paiement de l’abonnement, vous devez définir la valeur (id du produit d’abonnement) de la variable prodamus_subscription, juste après, la variable prodamus_pay_url.

La variable prodamus_pay_url peut être affichée à l’écran sous forme de lien ou placée sur un bouton avec le texte « Payer ». Le lien a la forme suivante : https://payform.ru/7p3JR8/
Le traitement du résultat se fait de la même manière que pour un paiement unique (voir ci-dessus).
Après un abonnement réussi, la variable contenant le numéro de téléphone saisi lors du paiement customer_phone sera ajoutée à l’utilisateur. Le numéro de téléphone est nécessaire pour gérer l’abonnement.
customer_phone est nécessaire pour gérer 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 d’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, nous copions l’id du produit d’abonnement ; ci-dessous, il est indiqué où le trouver :
Pour obtenir un 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 pour un produit d’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. L’ID peut être obtenu en le copiant 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 également, dans le champ "Calculateur" indiquer : expired = current_date + 2 (le lien sera valable 2 jours jusqu’à 00:00). expired vous pouvez également indiquer une date avec l’heure exacte, séparée par un espace, au format jj.mm.aaaa hh:mm (par exemple : 25.01.2021 12:23). Vous pouvez également utiliser des variables standard, par exemple définissons la durée de validité du lien à 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 ou un nombre avec un point : 25 ou 63.5 Pour ignorer ce paramètre, transmettez à la place des guillemets simples ou doubles.
description
description du produit (si non indiquée, remplie avec '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 - coût - 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 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', '[email protected]', 20, 'Le meilleur cours du marché', extra_params, products_for_receipt)
Si plusieurs fonctions de génération de lien sont présentes dans le bloc et qu’une erreur s’est produite, 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 le Calculateur
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 pouvoir désabonner l’utilisateur, 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 issue des paramètres id_subscription - id du produit d’abonnement customer_phone - téléphone de l’abonné switcher = 0 correspond à 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 un ID de profil est transmis, 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 :

Notez que la fonction renvoie un status, que nous enregistrons et pouvons traiter à notre convenance ; lors de la désactivation/réactivation réussie status est égal à 'ok'
Fonction de gestion de l’abonnement
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id)
id_subscription - id du produit d’abonnement
switcher = 0 correspond à 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', '', '[email protected]')
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 appliquée à 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 allant jusqu’à 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 est illimité)
profile_id - ID du profil dans le système Prodamus En cas de succès, la fonction renverra 'ok' ; si la requête échoue, elle renverra la description de l’erreur.
Le montant de la remise et l’intervalle sont réécrits UNIQUEMENT si la fonction est appelée de nouveau avec de nouvelles valeurs !
Exemples :
1. Application d’une remise de 1 r sur tous les paiements automatiques suivants (le numéro de téléphone n’est pas indiqué, car il sera automatiquement repris depuis la variable customer_phone, et le nombre de prélèvements remisés par défaut correspond à toute la durée de l’abonnement)
r = prodamus_subscription_discount('624034', '1')
2. Application d’une remise de 2 r sur les 3 prochains prélèvements (le numéro de téléphone est remplacé par des guillemets vides, car il sera automatiquement repris depuis la variable customer_phone)
r = prodamus_subscription_discount('624034', '2', '', '3')
3. Exemple d’application d’une remise sous forme d’un 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 la variable

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Comment définir la date du prochain paiement de l’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 le futur » par rapport à la date actuellement définie du prochain paiement. Cela permet ainsi d’augmenter la durée de séjour 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ù :
subscription_id - identifiant de l’abonnement date - date au format jj.mm.aaaa hh:mm ou jj.mm.aaaa, auquel cas l’heure sera 00:00 customer_phone - non obligatoire ; si non transmis, sera repris depuis la variable customer_phone ; si elle ne le contient pas non plus, la fonction ne s’exécutera 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 de l’échelonnement, etc.), ajoutez prodamus_ au début du nom de la variable
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 testons uniquement le paiement !
Afin que des fonds ne soient pas débités de votre compte lors des tests d’intégration et de configuration des tunnels de vente pour le paiement, vous pouvez utiliser des cartes de test
Commencez par mettre 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 :
МИР 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
! Lors d’un paiement avec des comptes de test, tous les tunnels et intégrations configurés fonctionneront comme lors d’un paiement normal !
Le formulaire est testé
Pour accepter des paiements en argent réel, il faut mettre le formulaire en mode opérationnel. Autrement dit, basculer le curseur du mode démo de manière à ce qu’il devienne rouge pâle
Mis à jour
