Comment connecter Prodamus
Pour connecter Prodamus, vous avez besoin de l'URL du formulaire de paiement et d'une clé secrète.
L'URL du formulaire de paiement est fournie après l'inscription, par exemple : demo.payform.ru.
La clé secrète peut être obtenue depuis votre compte personnel, où vous devez également spécifier l'URL d'envoi des notifications.

Guide complet sur la façon de procéder
Adresse pour les notifications :
https://chatter.mavibot.ai/prodamus\_callback/result
Cette adresse doit être spécifiée à deux endroits dans les paramètres.
Sur la page principale des paramètres, vous pouvez choisir le mode de fonctionnement du formulaire de paiement : mode démo sans paiement ou mode de réception des paiements.

L'adresse pour les notifications doit être spécifiée à deux endroits dans les paramètres du système de paiement : dans l'onglet « Configuration du formulaire » pour les paiements uniques (standard) et dans l'onglet « Abonnements » pour les paiements par abonnement.

Adresse pour les notifications :
https://chatter.mavibot.ai/prodamus\_callback/result
Pour configurer le travail avec les paiements par abonnement, accédez à l'onglet « Abonnements » et spécifiez l'adresse pour les notifications :
https://chatter.mavibot.ai/prodamus\_callback/result

Attention ! Après avoir saisi l'URL, assurez-vous de cliquer sur le bouton « Enregistrer ».
Pour connecter Prodamus, vous devez accéder à la section « Acquisition ».

Ensuite, il suffit de saisir les données mentionnées ci-dessus dans le formulaire :

Important ! Lorsque vous spécifiez l'URL du formulaire de paiement, n'ajoutez pas https://.
La connexion est ainsi terminée. Voyons maintenant comment utiliser cette fonctionnalité.
Comment créer un lien de paiement
Bouton avec la fonction « Payer »
Un lien de paiement peut être créé dans un bouton avec la fonction « Payer ».
Examinons maintenant tous les paramètres possibles de ce bouton.
Paramètres obligatoires du bouton « Payer » pour Prodamus
Pour créer un lien de paiement, vous devez spécifier les paramètres obligatoires dans les paramètres du bouton :
« Montant », « Nom du produit », ainsi que le paramètre « Contenu payant » — si vous n'avez pas votre propre caisse en ligne et souhaitez recevoir un reçu de Prodamus.
Lors de l'accès à la page de commande, les informations sur le produit et son prix sont pré-remplies, et le client n'a qu'à saisir ses coordonnées.
Si l'email et/ou le téléphone de l'utilisateur sont spécifiés dans les paramètres du bouton, les coordonnées du payeur ainsi que les informations sur le produit et son prix seront affichées sur la page de commande.

Champ « Texte » – ce texte sera affiché dans le message sur le bouton contenant le lien de paiement.
Champ « Fonction » – pour créer un bouton redirigeant vers un lien de paiement, nous sélectionnons la fonction « Payer ».
Champ « Système de paiement » – les systèmes de paiement connectés au projet sont listés.
Si aucun système de paiement n'est connecté au projet, ce type de bouton ne sera pas disponible.
Champ « Nom du produit » (obligatoire) – vous devez spécifier le nom exact du produit. Par exemple : pas « Téléphone », mais « Smartphone Xiaomi, modèle … ».
Remarque : n'utilisez pas de guillemets doubles dans le nom du produit ; supprimez-les ou remplacez-les par des guillemets simples.
Champ « Montant » (obligatoire) – nous indiquons le prix du produit.
Menu « Informations supplémentaires » – des champs supplémentaires s'ouvrent pour créer un lien lors du clic sur ce bouton :
- Description de la commande
- Réduction en roubles
- Variable Email de l'acheteur
- Variable numéro de téléphone de l'acheteur
- Durée de validité du lien
- ID du produit pour l'abonnement (pour les paiements automatiques)
- Contenu payant
Case à cocher « Notification au clic » – peut être cochée pour suivre l'accès au lien de paiement. Dans ce cas, lors du clic sur le bouton, un message apparaîtra dans le dialogue client dans Salebot, indiquant que le lien a été consulté.

Vous pouvez configurer la logique de travail ultérieure du bot en fonction de ce message.
De nombreux systèmes de paiement prennent en charge les caisses en ligne cloud, nécessaires conformément aux exigences de la loi 54-FZ.
Lisez les spécificités de l'émission des reçus sur le site du système de paiement choisi pour éviter des problèmes avec l'inspection fiscale.
Voici à quoi ressemble la page de paiement qui s'ouvre lors de l'accès via le lien dans le bouton « Payer » :

Paramètres supplémentaires pour créer un lien de paiement

Champ « Description de la commande » – les informations saisies dans ce champ seront affichées dans le champ Données supplémentaires sur la page de paiement.
Champ « Réduction » – vous pouvez spécifier le montant de la réduction en roubles ou en roubles et centimes. Pour indiquer les centimes, utilisez le point comme séparateur : 50.99
Sur la page de paiement, le champ Montant à payer affichera la réduction prise en compte, et le prix de base du produit sera barré.
Champ « Variable Email de l'acheteur » (facultatif, si le numéro de téléphone est fourni) – l'email de l'utilisateur (client) est indiqué ici. Vous pouvez également utiliser une variable où l'email est stocké, par exemple : #{email}
Champ « Variable numéro de téléphone de l'acheteur » (facultatif, si l'email est fourni) – vous pouvez utiliser ici une variable contenant le numéro de téléphone de l'acheteur, au format : 79000000000, par exemple : #{phone}
L'email et/ou le téléphone sont obligatoires.
Champ « Durée de validité du lien » – vous pouvez spécifier la date au format jj.mm.aaaa hh:mm (par exemple, 25.01.2021 11:00) ou définir la date d'expiration du lien via une variable. Par exemple : #{link_expired}
Champ « ID du produit pour l'abonnement » – fournissez l'ID du produit pour effectuer un paiement automatique. Pour créer un abonnement, vous devez créer un produit d'abonnement.
Guide complet : Créer et configurer des abonnements Prodamus
Si un ID de produit d'abonnement est fourni, le montant du paiement n'est pas pris en compte. Les informations sur le produit sont extraites de la fiche produit dans le compte Prodamus.
Le numéro de téléphone indiqué dans le paiement sera nécessaire pour gérer l'abonnement.
Si un ID de produit d'abonnement est fourni, l'ID de ce produit sera transmis dans le callback en cas de paiement réussi.
Champ « Contenu payant » (conditionnellement obligatoire) – ces données sont nécessaires pour la fiscalisation du paiement via Prodamus, si vous n'avez pas votre propre caisse en ligne. Ce champ contient la description de l'achat, le prix et un lien vers 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
Bouton avec la fonction « Payer »
Si vous spécifiez une durée de validité pour le lien, le scénario suivant se produit :
Si l'utilisateur demande le lien de paiement pendant sa période de validité (c'est-à-dire que le lien n'a pas encore expiré) et qu'il est dans le dialogue, le paiement ne sera pas possible et le message suivant lui sera affiché :

La date d'expiration du lien doit être postérieure à la date actuelle, sinon le client ne pourra pas effectuer le paiement via ce lien.
2. Lorsque l'utilisateur demande le lien, s'il n'est pas actuellement actif
Dans ce cas, le bouton ne sera tout simplement pas affiché. Une variable "error_payment_button" apparaîtra dans les variables du client, avec la valeur suivante :
&#xNAN;"Erreur : La date d'expiration du lien doit être postérieure à la date actuelle".
Pour que l'utilisateur puisse effectuer le paiement correctement, il est recommandé de traiter ce cas supplémentairement.
Créez un bloc conditionnel comme suit :
Si le message suivant arrive :
error_payment_button == "Erreur : La date d'expiration du lien doit être postérieure à la date actuelle"
Alors affichez le texte suivant :
&#xNAN;"Désolé, vous n'avez pas pu effectuer le paiement à temps, le lien de paiement est devenu invalide".


Variables client créées automatiquement lors de l'utilisation du bouton avec la fonction « Payer »
Au moment où l'utilisateur reçoit le bloc avec le bouton « Payer », des variables sont automatiquement créées pour le client :
Variable client de service __payments – cette variable stocke le montant et l'identifiant du lien créé, et est nécessaire pour identifier le hook provenant du système de paiement.
La variable client de service
__paymentsne peut pas être désactivée ou modifiée !
La variable client error_payment_button est automatiquement créée si une erreur se produit lors de la création du bouton.
Le texte de l'erreur ou la réponse d'erreur du système de paiement est enregistré dans cette variable.
Les valeurs des variables deviennent pertinentes lors du passage au bloc suivant.
Comment traiter le résultat
Paiement réussi
Après un paiement réussi, un CALLBACK AUTOMATIQUE est envoyé au bot, composé des 10 premiers caractères de la clé secrète du système de paiement, du mot _success et du montant du paiement.
Il suffit de le copier pour l'utiliser dans la configuration du schéma.
Par exemple : ovg58keefc_success 44, où :
-
ovg58keefc– les 10 premiers caractères de la clé secrète du système de paiement -
_success– le résultat du traitement de la demande (paiement réussi) -
44– le montant du paiement
L'utilisateur NE VOIT PAS les callbacks (messages) provenant du système de paiement. Ils sont uniquement affichés dans l'onglet « Clients » et sont visibles par l'opérateur.
Exemple d'utilisation :
Étape 1. Ajoutez des boutons avec la fonction « Payer » au bloc « Avec bouton de paiement ».
Étape 2. Spécifiez le callback dans le champ Condition de connexion qui mène de ce bloc au bloc « Paiement réussi ».
De même, si le callback de paiement réussi est spécifié dans la condition du bloc « Condition initiale », le travail s'effectue de manière analogue.
Important : Choisissez « Correspondance exacte » ou « Par présence de mots-clés ».
❗️Si vous décidez de vérifier le paiement exactement par la condition spécifiée dans la flèche, réfléchissez attentivement à la logique de votre schéma. Si le client quitte le bloc qui passe par la condition avec le callback, le passage au bloc n'aura pas lieu. Il est préférable d'utiliser cette méthode de vérification uniquement si le client ne change pas de position dans l'entonnoir.
Dans les schémas où le client se déplace entre les blocs, il est plus efficace d'utiliser l'option de spécification du callback dans le bloc « Condition initiale ».

Paiement réussi pour les produits avec abonnement automatique
Après un paiement réussi, un CALLBACK AUTOMATIQUE est envoyé au bot, composé des 10 premiers caractères de la clé secrète du système de paiement, du mot _success et de l'ID du produit d'abonnement.
Par exemple : 214009eefc_success 618117, où :
-
009eefc– les 10 premiers caractères de la clé secrète du système de paiement -
_success– le résultat du traitement de la demande (paiement réussi) -
618117– l'ID du produit d'abonnement

Paiement échoué
En cas d'erreur lors du paiement, un CALLBACK AUTOMATIQUE est envoyé au bot, composé des 10 premiers caractères de la clé secrète du système de paiement, du mot _fail et du montant du paiement.
Par exemple : ovg58keefc_fail 44, où :
-
ovg58keefc– les 10 premiers caractères de la clé secrète du système de paiement -
_fail– le résultat du traitement de la demande (paiement non effectué ou erreur) -
44– le 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 spécifié dans les paramètres du bouton diffère du montant payé par le client, un CALLBACK AUTOMATIQUE est envoyé au bot. Il est composé des 10 premiers caractères de la clé secrète du système de paiement, du mot _different_amounts et de l'ID unique du paiement.
Exemple : ovg58keefc_different_amounts 123456, où :
-
ovg58keefc– les 10 premiers caractères de la clé secrète du système de paiement -
_different_amounts– résultat du traitement de la demande (le montant du paiement diffère de celui du lien) -
123456– l'ID unique du paiement
Fonction get_prodamus_payment_url dans la Calculatrice
Pour créer un lien de paiement, vous pouvez utiliser la fonction get_prodamus_payment_url dans le bloc Calculatrice.
Dans le champ Calculatrice, nous assignons la valeur de cette fonction à une variable : get_prodamus_payment_url.
Vous choisissez vous-même le nom de la variable. Les captures d'écran montrent des exemples de noms de variables.
Cette variable contiendra le lien de paiement. Vous pouvez afficher la variable comme un lien dans un message ou la placer sur un bouton avec le texte « Payer ».
Exemple de lien de paiement : https://payform.kz/7p3JR8/
Calculatrice
Exemple 1 :

Description des paramètres
your_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 :
| Paramètre | Valeur du paramètre |
|---|---|
amount |
Montant du paiement – peut être fourni sous forme d'entier ou de nombre décimal séparé par un point. Exemple : 25 ou 52.5. (paramètre obligatoire) |
product_name |
Nom du produit (paramètre obligatoire) |
expired |
Durée de validité du lien de paiement – au format Il est également possible d'indiquer une heure précise : Vous pouvez également utiliser des variables standards, par exemple pour définir la validité du lien à 30 minutes :
Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place une guillemet simple, une guillemet double ou la valeur |
customer_phone |
Numéro de téléphone de l'acheteur – facultatif, si le paramètre customer_email est fourni.Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place une guillemet simple ou une guillemet double. |
customer_email |
Adresse e-mail de l'acheteur – facultatif, si le paramètre customer_phone est fourni.Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place une guillemet simple ou une guillemet double. |
discount |
Montant de la réduction – le paramètre peut être fourni sous forme d'entier ou de nombre décimal : 25 ou 63.5.Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place une guillemet simple ou une guillemet double. |
description |
Description du produit (si non spécifiée, elle est automatiquement remplie avec 'Оплата счета order_id').Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place une guillemet simple ou une guillemet double. |
extra_params |
Paramètres supplémentaires, paramètres non présents dans cette fonction. Exemple :
Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place une guillemet simple/guillemet double ou la valeur |
products_for_receipt |
Chaîne de 50 à 4000 caractères au format Ce paramètre est obligatoire si vous n'avez pas votre propre caisse en ligne et que vous devez fiscaliser le paiement via Prodamus. |
Exemple
extra_params = {"payments_limit": "3"}
products_for_receipt = "Cours ‘Pêche à la brème’, prix 4999 tenges, 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 sur le marché', extra_params, products_for_receipt
Dans cet exemple :
-
extra_params– paramètres supplémentaires (par exemple, limite de paiement). -
products_for_receipt– informations sur le produit affichées dans le reçu. - La fonction
get_prodamus_payment_urlcrée un lien de paiement.
Si le bloc contient plusieurs fonctions d'obtention de lien et qu'une erreur se produit, la valeur de l'erreur est écrite dans la variable
error_payment_func.L'erreur est enregistrée dans la Calculatrice pour la dernière fonction.
Création d'un lien via la variable payment_sum et des paramètres supplémentaires
Attention : La valeur de la variable
payment_sumest transmise depuis la dernière variable, c'est-à-dire après les variables facultatives :payment_description,product_name, etc.
Pour créer un lien de paiement, il suffit de définir la valeur de la variable payment_sum dans le champ Calculatrice.
Après cela, la variable prodamus_pay_url apparaît automatiquement.
Exemple de lien de paiement : https://payform.ru/7p3JR8/
Vous pouvez afficher cette variable comme un lien dans un message ou la placer sur un bouton avec le texte « Payer ».
Avant de déclarer la variable payment_sum, vous pouvez spécifier les variables facultatives suivantes :
| Paramètres de la fonction | Description du paramètre |
|---|---|
| product_name | Nom du produit (si non spécifié, il est automatiquement rempli avec "Paiement de la facture order_id") – la capture d'écran ci-dessous montre où il est affiché. |
| payment_description |
Description du produit (si non spécifiée, elle est automatiquement remplie avec 'Оплата счета order_id') – la capture d'écran ci-dessous montre où elle est affichée. |
| discount_value |
Montant de la réduction (exemple : discount_value = 25 ou discount_value = 50.25) |
| customer_phone | Numéro de téléphone de l'acheteur – facultatif, si un autre paramètre est fourni. |
| customer_email | Adresse e-mail de l'acheteur |
| link_expired | Durée de validité du lien de paiement – au format |
| link_expired | Vous pouvez également indiquer une heure précise, format : |
| currency |
Devise du paiement, par défaut
Ce paramètre doit être fourni en minuscules. |
| payment_title | Titre du paiement (jusqu'à 127 caractères). Si non spécifié, il est automatiquement rempli avec le texte suivant : |
| payment_description | Brève description du paiement (jusqu'à 127 caractères) |
| locale | Langue de la page de paiement – spécifiée au format |
| products_for_receipt |
Chaîne de 50 à 4000 caractères au format Ce paramètre est obligatoire si vous n'avez pas votre propre caisse en ligne et que vous devez fiscaliser le paiement via Prodamus. |
| payment_sum | (obligatoire) montant du paiement |
Les variables
discount_value,customer_phone,customer_emailetlink_expiredsont également pertinentes pour les abonnements.

Exemple de mise en œuvre.
Dans le premier bloc, nous définissons le montant du paiement :

À l'étape suivante, nous affichons le lien prodamus_pay_url à l'endroit nécessaire :

La variable prodamus_available_payment_methods est définie avant de déclarer 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, à l'exception de la Russie |
| ACEURNMBX | Paiement par carte EUR de tous les pays, à l'exception de la Russie et de 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 par facture |
| installment | Paiement échelonné via Prodamus |
| installment_5_21 | Paiement échelonné sur 3 mois via Prodamus |
| installment_6_28 | Paiement échelonné sur 6 mois via Prodamus |
| installment_10_28 | Paiement échelonné sur 10 mois via Prodamus |
| installment_12_28 | Paiement échelonné sur 12 mois via Prodamus |
| installment_0_0_3 | Paiement échelonné sur 3 mois via Tinkoff |
| installment_0_0_4 | Paiement échelonné sur 4 mois via Tinkoff |
| installment_0_0_6 | Paiement échelonné sur 6 mois via Tinkoff |
| installment_0_0_10 | Paiement échelonné sur 10 mois via Tinkoff |
| installment_0_0_12 | Paiement échelonné sur 12 mois via Tinkoff |
| installment_0_0_24 | Paiement échelonné sur 24 mois via Tinkoff |
| installment_0_0_36 | Paiement échelonné sur 36 mois via Tinkoff |
| credit | Crédit via Tinkoff |
| vsegdada_installment_0_0_4 | Paiement échelonné sur 4 mois via "VsegdaDa" (ne fonctionne pas avec available_payment_methods) |
| vsegdada_installment_0_0_6 | Paiement échelonné sur 6 mois via "VsegdaDa" |
| vsegdada_installment_0_0_10 | Paiement échelonné sur 10 mois via "VsegdaDa" |
| vsegdada_installment_0_0_12 | Paiement échelonné sur 12 mois via "VsegdaDa" |
| vsegdada_installment_0_0_24 | Paiement échelonné sur 24 mois via "VsegdaDa" |
| vsegdada_installment_0_0_36 | Paiement échelonné sur 36 mois via "VsegdaDa" |
| sbrf_installment_0_0_6 | Paiement échelonné sur 6 mois via Sberbank |
| sbrf_installment_0_0_10 | Paiement échelonné sur 10 mois via Sberbank |
| sbrf_installment_0_0_12 | Paiement échelonné sur 12 mois via Sberbank |
| sbrf_installment_0_0_24 | Paiement échelonné sur 24 mois via Sberbank |
| sbrf_installment_0_0_36 | Paiement échelonné sur 36 mois via Sberbank |
| otp_installment_0_0_6 | Paiement échelonné sur 6 mois via "OTP Bank" |
| otp_installment_0_0_10 | Paiement échelonné sur 10 mois via "OTP Bank" |
| otp_installment_0_0_12 | Paiement échelonné sur 12 mois via "OTP Bank" |
| otp_installment_0_0_24 | Paiement échelonné sur 24 mois via "OTP Bank" |
| otp_installment_0_0_36 | Paiement échelonné sur 36 mois via "OTP Bank" |
| mts_installment_0_0_6 | Paiement échelonné sur 6 mois via "MTS Bank" |
| mts_installment_0_0_10 | Paiement échelonné sur 10 mois via "MTS Bank" |
| mts_installment_0_0_12 | Paiement échelonné sur 12 mois via "MTS Bank" |
| mts_installment_0_0_24 | Paiement échelonné sur 24 mois via "MTS Bank" |
| mts_installment_0_0_36 | Paiement échelonné sur 36 mois via "MTS Bank" |
| monetaworld | Cartes des banques mondiales, à l'exception de la Russie |
| sbrf_bnpl | Paiement échelonné via Sber |
Il est permis de spécifier plusieurs valeurs séparées par une barre verticale.
Par exemple :
prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency – c'est un paramètre supplémentaire qui permet d'afficher le montant dans une devise spécifique.
Devises possibles :
-
kzt– pour le tenge -
eur– pour l'euro -
usd– pour le dollar
Ainsi, le montant indiqué dans le lien sera dans la devise sélectionnée.
Lors de la réception du callback payment_callback, il faut prêter attention aux paramètres currency et currency_sum, qui indiquent la devise et le montant.
Si non spécifié, la page redirige vers une page sans méthodes de paiement.
Les méthodes de paiement peuvent être activées via le support. Les méthodes activées peuvent être testées dans les paramètres de la page ou en créant un lien de paiement.


Comment traiter le résultat
Paiement réussi
Important : après un paiement réussi ou échoué, des callbacks arrivent dans le bot, grâce auxquels vous pouvez déterminer si le paiement a été effectué avec succès.
Les callbacks ressemblent à des messages provenant d'un utilisateur dans le système, mais l'utilisateur ne peut pas les envoyer. Ils se présentent sous la forme d'une combinaison d'une clé secrète et d'un statut. Par exemple :
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
ou
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
Après un paiement réussi, la variable prodamus_payment_completed prend automatiquement la valeur True.
Remarque : Les callbacks arrivent avec un léger retard, il est donc conseillé d'envoyer un message à l'utilisateur après lui avoir envoyé le lien :
"Après avoir effectué le paiement, veuillez attendre la confirmation de la réussite du paiement."
Structure du callback
Pour les liens créés via le bouton Paiement ou la fonction dans le Calculateur, un callback arrive automatiquement dans le bot après le paiement. Il se compose de :
<clé_secrète>_success <montant_du_paiement>
Par exemple :
ovg58keefc_success
-
ovg58keefc– la clé secrète complète du système de paiement -
_success– le résultat du traitement de la demande (paiement réussi)
Utilisation pratique
Vous pouvez traiter un paiement réussi à l'aide d'un bloc conditionnel et afficher un message approprié à l'utilisateur.

Le type de comparaison doit être "Full match" / "Полное совпадение"
Pour effectuer un nouveau paiement, il est impératif de réinitialiser la variable payment_sum à zéro et de supprimer le lien précédemment créé. Ensuite seulement, attribuer une nouvelle valeur à la variable payment_sum et obtenir le lien mis à jour.
Désactivation/réactivation de l'abonnement
De plus, le système Prodamus dispose de notifications concernant l'activation ou la suspension d'un abonnement :

« L'abonnement a été désactivé par l'utilisateur » – si l'abonnement a été interrompu manuellement (par exemple, en cas de résiliation de l'abonnement).
Ce message peut arriver avant la fin de la période payée en cours. L'action dépend de votre décision : ignorer, prendre en contrôle ou tenter de récupérer l'utilisateur.
« L'abonnement a été réactivé par l'utilisateur » – l'abonnement a été restauré.
Ce message peut arriver si l'utilisateur restaure l'abonnement avant la fin de la période payée en cours. L'action dépend de votre décision : ignorer ou retirer de la liste de surveillance.
« Désactivation de l'abonnement » – en cas de suspension de l'abonnement après plusieurs échecs de paiement.
Enregistrer les valeurs du callback
Après la réception d'un message de paiement réussi, le callback de Prodamus est écrit dans la variable payment_callback, contenant toutes les données de paiement. Vous pouvez enregistrer ces données 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": "Товар",
"payment_type": "Пластиковая карта Visa, MasterCard, МИР",
"commission": "3.5",
"commission_sum": "0.51",
"attempt": "1",
"discount_value": "10.5",
"products[0][name]": "Доступ к обучающим материалам",
"products[0][price]": "14.50",
"products[0][quantity]": "1",
"products[0][sum]": "14.50",
"payment_status": "success",
"payment_status_description": "Успешная оплата",
"payment_init": "manual"
}
Lors de la création du lien, vous pouvez spécifier les variables product_name et payment_description. Ainsi, lors de la réception du callback, vous pouvez les récupérer comme suit :
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')

Attention : la variable payment_sum reçoit la dernière valeur, qui se trouve après les variables facultatives : payment_description, product_name.
Vous pouvez obtenir le montant comme suit :
summa = get(payment_callback, 'sum')
Callbacks disponibles
En plus des callbacks de paiement réussi principaux, des messages invisibles pour l'utilisateur arrivent dans le chat :
callbacks
- 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 - message avec explication (sur la capture d'écran ci-dessus)
- Notification de débit à venir - date et heure du prochain débit
- Demande de paiement échelonné avec statut
Exemples de callbacks dans le dialogue 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 - 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. Contactez la banque émettrice de la carte.
- Paiement non réussi - Refus de la banque émettrice d'effectuer l'opération.
- Paiement non réussi - Refus de la banque d'effectuer l'opération.
- Notification de débit à venir - 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 configurer l'envoi de n'importe quel message à l'utilisateur selon vos souhaits. Par exemple, envoyer un message en cas d'échec du paiement automatique.
Vous pouvez configurer des blocs de réponse pour un message d'échec de paiement avec une raison spécifique comme suit :

Pour envoyer une notification pour tous les paiements échoués, quelle qu'en soit la raison, vous pouvez configurer comme suit :

Dans tous les callbacks, si le texte contient le mot « Paiement échoué », un message avec le texte que vous avez défini sera envoyé à l'utilisateur.
Comment effectuer un paiement par abonnement
Comment créer un abonnement
Pour créer un abonnement, vous devez d'abord créer un produit d'abonnement.
Guide complet : Comment créer et configurer un abonnement
Ensuite, copiez l'ID du produit d'abonnement. Par exemple, ci-dessous est indiqué où le trouver :
Pour créer un lien de paiement d'abonnement, vous devez définir l'ID du produit d'abonnement dans la variable prodamus_subscription. Après cela, la variable prodamus_pay_url apparaîtra automatiquement.
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 ». Exemple de lien : https://payform.kz/7p3JR8/
Le traitement du résultat s'effectue de la même manière que pour un paiement unique (comme vous l'avez lu ci-dessus).
Après un abonnement réussi, la variable customer_phone saisie lors du paiement est ajoutée à l'utilisateur. Le numéro de téléphone est nécessaire pour gérer l'abonnement.
Si customer_email n'est pas fourni, customer_phone est obligatoire pour gérer l'abonnement.
Comment créer un lien d'abonnement avec la fonction get_prodamus_subscription_url
Examinons une autre méthode pour créer un lien de paiement d'abonnement pour un produit.
- Créez un produit d'abonnement dans le compte Prodamus.
Vous pouvez consulter le guide complet à ce lien :
Comment créer et configurer un abonnement - Ensuite, copiez l'ID du produit d'abonnement. Par exemple, ci-dessous est indiqué où le trouver :
Pour obtenir un lien de paiement pour un produit par abonnement dans le Calculateur, spécifiez la fonction
get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Calculateur
Exemple 1 : Lien de paiement pour un produit par abonnement

Description des paramètres
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 :
| Paramètre | Valeur du paramètre |
|---|---|
subscription_id |
ID du produit d'abonnement – peut être copié depuis le compte Prodamus (paramètre obligatoire). |
product_name |
Nom du produit (paramètre obligatoire). |
expired |
Durée de validité du lien de paiement – au format jj.mm.aaaa (par exemple, 25.01.2021). Vous pouvez également le spécifier dans le champ « Calculateur » :
Le paramètre Vous pouvez également utiliser des variables standard, par exemple, pour définir la durée de validité du lien à 30 minutes :
Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place un guillemet simple ou double, ou la valeur |
customer_phone |
Numéro de téléphone du payeur – facultatif, si le paramètre Si vous souhaitez omettre ce paramètre, passez à la place un guillemet simple ou double. |
customer_email |
Email du payeur – facultatif, si le paramètre Si vous souhaitez omettre ce paramètre, passez à la place un guillemet simple ou double. |
discount |
Montant de la réduction – le paramètre peut être passé sous forme d'entier ou de nombre décimal : 25 ou 63.5. Si vous souhaitez omettre ce paramètre, passez à la place un guillemet simple ou double. |
description |
Description du produit – si non spécifié, la valeur par défaut Si vous souhaitez omettre ce paramètre, passez à la place un guillemet simple ou double. |
extra_params |
Paramètres supplémentaires, non présents dans cette fonction. Exemple :
Si vous souhaitez omettre ce paramètre, vous pouvez passer à la place un guillemet simple/double ou la valeur |
products_for_receipt |
Chaîne de 50 à 4000 caractères, format : Exemple : Ce paramètre est obligatoire si vous n'avez pas votre propre caisse en ligne, pour la fiscalisation des paiements via Prodamus. |
Exemple de code à copier
extra_params = {"payments_limit": "3"} \
products_for_receipt = "Cours 'Cours de pêche à la brème', abonnement mensuel prix 2000 tenges, lien vers la page du cours : https://www.lovilescha.ru/courses/poimai\_kilogram/" \
link_prodamus_sub = get_prodamus_subscription_url(618988, 'Cours 'Cours de pêche à la brème'', '27.03.2023 17:02', '79167777771', '[email protected]', 20, 'Le meilleur cours sur le marché', extra_params, products_for_receipt)
Si une erreur se produit lors de l'obtention d'un lien via plusieurs fonctions dans un bloc, la valeur de l'erreur est écrite dans la variable
error_payment_func.L'erreur est enregistrée dans le Calculateur pour la dernière fonction.
Comment gérer le statut de l'abonnement
Cette méthode est uniquement destinée aux abonnements réels, il n'y a pas de liaison de carte en mode démo.
Pour gérer un abonnement, l'un des paramètres customer_phone ou customer_email doit obligatoirement être fourni.
Pour désabonner un utilisateur, vous devez créer un bloc et appeler la fonction suivante :
delete_subscription_prodamus
Exemple de 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, obtenu à partir des paramètres du constructeur -
secret_key– clé secrète obtenue à partir des paramètres -
id_subscription– ID du produit d'abonnement -
customer_phone– téléphone du titulaire de l'abonnement -
switcher– gestion de l'abonnement :0– arrêter l'abonnement,1– réactiver l'abonnement -
profile_id– ID du profil dans le système Prodamus
Remarque :
Si l'ID du profil arrive, il est stocké dans la variable profile_id.
profile_id peut être passé à la fonction à la place de customer_phone ou customer_email pour arrêter l'abonnement.
Exemple : configuration des blocs d'abonnement

Notez que la fonction retourne status, que vous pouvez enregistrer et traiter à votre guise. En cas d'arrêt ou de réactivation réussie de l'abonnement, status = ok.
Fonction de gestion de l'abonnement
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id) Paramètres :
subscription_id – ID du produit d'abonnement
switcher – gestion de l'abonnement : 0 – arrêter l'abonnement, 1 – réactiver l'abonnement
customer_phone – téléphone du titulaire de l'abonnement ; facultatif si customer_email est spécifié
customer_email – adresse email du titulaire de l'abonnement ; facultatif si customer_phone est spécifié
profile_id – ID du profil dans le système Prodamus

Exemple 1 : paramètre customer_phone fourni, customer_email omis :
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
Exemple 2 : paramètre customer_email fourni, customer_phone omis :
stat = prodamus_subscription_switch_status('618117', '0', '', '[email protected]')
La fonction retourne
oksi toutes les opérations sont réussies ou la description de l'erreur en cas d'échec.
Gestion des réductions sur les abonnements
Cette fonction définit le montant de la réduction pour les paiements suivants d'un abonnement. La réduction peut être accordée pour un nombre limité ou illimité de paiements.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id)
Paramètres :
-
subscription_id– ID de l'abonnement -
discount– nombre décimal avec deux chiffres après la virgule ; la valeur doit être supérieure à zéro et ne pas dépasser le coût de base de l'abonnement -
customer_phone– numéro de téléphone du client, format :+79999999999(facultatif si la variablecustomer_emailexiste ; elle apparaît après le premier paiement) -
num– nombre de paiements auxquels la réduction s'applique (facultatif ; si non spécifié, la réduction s'applique à tous les paiements) -
profile_id– ID du profil dans le système Prodamus
Si la requête est exécutée avec succès, la fonction retourne 'ok' ; en cas d'erreur, la fonction retourne la description de l'erreur.
Le montant de la réduction et l'intervalle ne sont réécrits que si la fonction est rappelée avec de nouvelles valeurs !
Exemples :
1. Accorder une réduction de 1₽ sur tous les prochains paiements automatiques (le numéro de téléphone n'est pas spécifié car il est automatiquement extrait de la variable customer_phone ; le montant de la réduction s'applique par défaut à toute la durée de l'abonnement) :
r = prodamus_subscription_discount('624034', '1')
2. Exemple d'octroi d'une réduction de 2₽ pour les 3 prochains paiements (le numéro de téléphone est passé avec des guillemets vides car il est automatiquement extrait de la variable customer_phone) :
r = prodamus_subscription_discount('624034', '2', '', '3')
3. Exemple de spécification d'une réduction avec une fraction décimale (le séparateur est le point, les valeurs sont spécifiées sans guillemets), le numéro de téléphone peut être passé via une variable.

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Comment définir la date du prochain paiement d'un abonnement
Cette méthode permet de décaler la date du prochain paiement d'un abonnement. La date ne peut être décalée que vers le futur par rapport à la date actuelle du prochain paiement, ce qui permet d'augmenter la durée de participation au club.
Par exemple, cela peut être utilisé comme un bonus pour les abonnés.
Pour cela, il faut utiliser la fonction suivante :
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
Paramètres :
-
subscription_id– identifiant de l'abonnement -
date– date au format jj.mm.aaaa hh:mm ou jj.mm.aaaa ; si seul le format jj.mm.aaaa est fourni, l'heure sera 00:00 -
customer_phone– facultatif ; s'il n'est pas spécifié, il est récupéré depuis la variablecustomer_phone; s'il n'est pas trouvé, la fonction ne fonctionnera pas -
profile_id– ID du profil dans le système Prodamus
Comment envoyer des paramètres à Prodamus
Pour envoyer les paramètres nécessaires (par exemple, la date de début de l'abonnement, la désactivation du paiement échelonné, etc.) au système Prodamus, ajoutez le préfixe prodamus_ au nom de la variable.
Ensuite, lors de la création du lien de paiement, les paramètres de cette variable seront automatiquement envoyés au système de paiement.
Comment tester un paiement
Nous testons uniquement le paiement !
Lors de l'intégration et du réglage des entonnoirs de paiement, vous pouvez utiliser des cartes de test pour éviter que de l'argent ne soit débité de votre compte.
Passez d'abord votre page de paiement en mode DÉMO ⤵
N'oubliez pas d'appuyer sur le bouton « Enregistrer ».

Vous pouvez utiliser des comptes de test pour effectuer un paiement de test.
Cartes de test de la Sberbank :
MIR
Numéro de carte : 2202 2050 0001 2424
Date d'expiration : 05/35
Code de vérification au dos (CVV) : 669
MasterCard
Numéro de carte : 5469 9801 0004 8525
Date d'expiration : 05/26
Code de vérification au dos (CVV) : 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 (CVV) : 941
Code de vérification 3‑D Secure : 111111
❗️Lors d'un paiement avec des comptes de test, tous les entonnoirs et intégrations configurés fonctionnent comme pour un paiement normal❗️
Formulaire vérifié
Pour accepter des paiements réels, le formulaire doit être basculé en mode de fonctionnement. C'est-à-dire que l'interrupteur du mode démo doit être placé en position rouge ouvert.