Robokassa (KZ)
Comment configurer Robokassa
Voyons comment mettre en place l'acceptation des paiements dans le bot via le service Robokassa.
Créez une boutique en ligne dans l'espace personnel du service Robokassa et renseignez les paramètres techniques suivants :
- Algorithme de calcul du hachage : MD5 - Result Url : https://chatter.mavibot.ai/robokassa_callback/result - Méthode d'envoi des données via Result Url : GET - Success Url : https://chatter.mavibot.ai/robokassa_callback/success - Méthode d'envoi des données via Success Url : GET - Fail Url : https://chatter.mavibot.ai/robokassa_callback/fail - Méthode d'envoi des données via Fail Url : GET

Créez des mots de passe de test et effectuez la configuration initiale en mode test.
Comment connecter Robokassa à MaviBot ?
Allez dans la section « Encaissement » et cliquez sur « Connecter » sur la bannière Robokassa :

et remplissez le formulaire dans la fenêtre qui s'ouvre :
Champ Identifiant du magasin — Shop ID, que vous pouvez trouver dans les paramètres de la boutique dans l'espace personnel Robokassa.
Les mots de passe #1 et #2 — des suites uniques de chiffres et de lettres générées automatiquement.
champ Taux de TVA. Il faut indiquer le code approprié pour transmettre la valeur de la TVA. Ce champ définit le taux d'imposition dans la caisse enregistreuse. Il est déterminé séparément pour chaque type de produit, mais pour toutes les unités d'un même produit ensemble.
S'applique avec les valeurs :
Sans TVA.
TVA au taux de 0 %.
TVA au taux de 5 %
TVA du reçu au taux calculé de 12 %.
TVA du reçu au taux calculé de 16 %.
Comment générer un lien de paiement
Générer un lien de paiement dans le bloc peut se faire L'UNE DES méthodes 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
Vous pouvez créer un lien de paiement dans le bouton avec la fonction « Paiement ».
Nous avons expliqué ici comment créer un bouton avec la fonction « Paiement »
Examinons tous les paramètres possibles de ce bouton. Comment créer un bouton avec la fonction Paiement est expliqué dans cet article :
Paramètres obligatoires du bouton Paiement
Pour générer un lien de paiement dans les paramètres du bouton, il faut indiquer les paramètres obligatoires : Montant et Nom du produit.

champ Montant. Dans ce champ, nous indiquons le coût du produit en roubles
champ Nom du produit. Dans ce champ, vous ne pouvez utiliser que des caractères de l'alphabet anglais ou russe, des chiffres et des signes de ponctuation. La longueur maximale est de 100 caractères. Cette information s'affiche dans l'interface Robokassa et dans le reçu électronique que le client reçoit après un paiement réussi.
IL EST INTERDIT d'utiliser les guillemets doubles dans le nom du produit : supprimez-les ou remplacez-les par des apostrophes simples.
case à cocher Autopaiement. Pour connecter l'autopaiement
case à cocher Notification de clic. Pour suivre le passage par le lien de paiement, vous pouvez cocher la case. Dans ce cas, lorsqu'un clic sur le bouton se produit, une notification indiquant qu'un passage par le lien a eu lieu arrivera dans la conversation client de SaleBot
Il est possible de configurer ensuite la logique de fonctionnement du bot à partir de cette notification.
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 de l'émission des reçus sur le site du système de paiement choisi, afin d'éviter une situation embarrassante avec l'administration fiscale.
Pour générer un reçu
menu Données pour la génération du reçu. Au clic, un menu déroulant avec les paramètres pour générer le reçu s'ouvrira :

champ Nom du produit. Obligatoire pour générer le reçu.
IL EST INTERDIT d'utiliser les guillemets doubles dans le nom du produit : supprimez-les ou remplacez-les par des apostrophes simples.
champ Montant total en roubles. Dans ce champ, il faut indiquer le montant à payer en tenant compte du nombre de produits. Si la quantité est égale à 1, alors le montant total en roubles est égal à la valeur du champ Montant dans le champ obligatoire de configuration du bouton
champ Quantité. Quantité ou poids du produit. Vous pouvez transmettre un nombre entier ou décimal avec un point. Exemple : 5 ou 10.3
Variables client qui seront créées automatiquement lors de l'utilisation du bouton avec la fonction Paiement
Dès que l'utilisateur recevra le bloc avec le bouton « Paiement », les variables client suivantes seront automatiquement créées :

Variable de service du client __payments , qui stocke le montant et l'identifiant du lien créé, nécessaire pour identifier le webhook de la plateforme de paiement.
La variable de service client __payments NE DOIT PAS être supprimée ni modifiée !
Variable client error_payment_button est créée si une erreur se produit 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 d'erreur de la plateforme de paiement.
Les valeurs des variables deviennent pertinentes lors du passage au bloc suivant
Comment traiter le résultat
Attention !
Robokassa envoie une notification uniquement pour les transactions réussies via le paramètre Result URL. Il n'existe pas de callbacks pour les paiements échoués dans le service Robokassa.
Fail URL est uniquement une page d'échec de paiement, vers laquelle le payeur sera redirigé en cas d'erreur de code sur la page de paiement.
Paiement réussi.
Après avoir correctement configuré le paiement et généré le lien de paiement, testez les paramètres créés. Si le paiement réussit, alors dans la conversation client (section « Clients ») AUTOMATIQUEMENT arrivera un CALLBACK composé de 10 caractères de la clé secrète de la plateforme de paiement, du mot _success et, séparé par un espace, du montant du paiement. Le callback est généré automatiquement, il n'est pas nécessaire de le composer soi-même ni de le demander au support de la plateforme de paiement,


Par exemple : ovg58keefc_success 2999, où :
ovg58keefc : 10 caractères de la clé secrète de la plateforme de paiement
_success : résultat du traitement de la requête (paiement réussi)
2999 : montant du paiement
Exécution du bloc :

Callback :

Les callbacks (notifications) de la plateforme de paiement ne sont PAS visibles pour l'utilisateur. Ils s'affichent uniquement dans l'onglet « Clients » et sont visibles par l'opérateur/l'administrateur.
Exemple de configuration de la réaction au callback
Dans le bloc avec condition (cela peut être soit le bloc « Condition de départ », soit le bloc « Sans état avec condition »), il faut indiquer le callback reçu lors du paiement.
Important : choisissez le mode de correspondance « Correspondance exacte » ou « Selon la présence de mots-clés »

Ensuite, au moment du paiement, le client recevra le message du bloc dans lequel la réaction au callback est configurée :

Paiement avec erreur
Si le montant indiqué dans les paramètres du bouton diffère du montant que le client a payé, dans le bot AUTOMATIQUEMENT un CALLBACK arrivera, composé de 10 caractères de la clé secrète de la plateforme de paiement, du mot _different_amounts et, séparé par un espace, de l'identifiant unique du paiement
Par exemple : ovg58keefc_different_amounts 123456 , où :
ovg58keefc : 10 caractères de la clé secrète de la plateforme de paiement
_different_amounts : résultat du traitement de la requête (le montant du paiement diffère du montant du lien)
123456 : identifiant unique du paiement
Fonction get_robokassa_payment_url dans le Calculateur
Pour générer un lien de paiement, vous pouvez utiliser la fonction get_robokassa_payment_url dans le bloc Calculateur.
Dans le champ Calculateur, attribuons à la variable la valeur de la fonction get_robokassa_payment_url
Vous définissez vous-même le nom de la variable. Sur les captures, ce sont des exemples de noms de variables.
Dans cette variable sera enregistrée le lien de paiement. La variable peut être affichée sous forme de lien dans un message ou placée dans un bouton avec le texte « Payer ».
EXEMPLE de lien de paiement :: https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=test_salebot&OutSum=800&InvId=1412&IsTest=1&SignatureValue=0427369c3bd068bae30935f896060dda
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 de l'émission des reçus sur le site du système de paiement choisi, afin d'éviter une situation embarrassante avec l'administration fiscale.
Exemple 1 :

get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
Paramètres de la fonction :
amount
Montant à payer. Dans ce champ, nous indiquons le coût du produit en roubles.
(paramètre obligatoire)
description
Nom du produit. Dans ce champ, vous ne pouvez utiliser que des caractères de l'alphabet anglais ou russe, des chiffres et des signes de ponctuation. La longueur maximale est de 100 caractères. Cette information s'affiche dans l'interface Robokassa et dans le reçu électronique que le client reçoit après un paiement réussi. (paramètre obligatoire)
products_for_
receipt
Paramètres pour la génération des reçus.
Pour en savoir plus, lisez ici.
recurrent
Connexion de l'autopaiement. Si l'autopaiement est activé, transmettez la valeur 1 ; s'il est désactivé, transmettez None
currency
Code de devise à trois lettres.
La valeur doit être transmise strictement selon les paramètres acceptés par le service Robokassa. USD - dollar ; EUR - euro ; KZT - tenge.
Exemple 1 : lien de paiement sans reçu
res = get_robokassa_payment_url(100, 'Achète-moi')
Exemple 2 : lien de paiement avec reçu
receipt = [{"name":"DDDDDDDD","amount":"44","quantity":"1","vat_code":"5","method":"full_payment","object":"commodity"}]
res = get_robokassa_payment_url(100, 'Achète-moi', receipt, '3', 1, 1)
La variable peut être affichée sous forme de lien dans un message ou placée dans un bouton avec le texte, par exemple, « Acheter ».
Si plusieurs fonctions de récupération du lien sont présentes dans le bloc et qu'une erreur se produit, la valeur de l'erreur sera enregistrée dans la variable error_payment_func
L'erreur sera enregistrée à la dernière fonction du Calculateur
Après avoir correctement configuré le paiement et généré le lien de paiement, testez les paramètres créés.
Comment ajouter une description au paiement
Vous pouvez ajouter une description au paiement en définissant la variable payment_description

Cette description s'affichera dans le formulaire de paiement, ainsi que sur le reçu.
Comment traiter le résultat
Si le paiement réussit, alors dans la conversation client (section « Clients ») AUTOMATIQUEMENT arrivera un CALLBACK composé de 10 caractères de la clé secrète de la plateforme de paiement, du mot _success et, séparé par un espace, du montant du paiement. Le callback est généré automatiquement, il n'est pas nécessaire de le composer soi-même ni de le demander au support de la plateforme de paiement,
Par exemple : ovg58keefc_success 1500, où :
ovg58keefc : 10 caractères de la clé secrète de la plateforme de paiement
_success : résultat du traitement de la requête (paiement réussi)
1500 : montant du paiement
Attention !
Le callback n'est visible que pour vous dans la conversation avec le client.
Le callback n'est pas visible pour le client, mais vous pouvez configurer une réaction à l'exécution réussie du paiement.
Exemple
Paramètres du bloc avec la fonction get_robokassa_payment_url :
Si vous fournissez le lien dans le texte :

Important !
Le lien de paiement est unique : il est impossible de le copier et de l'envoyer ensuite à d'autres clients !
Envoyez le lien de paiement via une variable dans le bot (voir fig. 17).
Callback en cas de paiement réussi :

Lien dans le bouton :

Exécution du bloc :

Callback en cas de paiement réussi :

Création d'un lien à l'aide de la variable payment_sum et de paramètres supplémentaires
Vous pouvez également accepter le paiement en générant un lien à l'aide de la variable payment_sum, dans laquelle il suffit d'indiquer le montant du paiement.
Attention : de la variable payment_sum est attribuée en dernier, après les variables facultatives payment_description, product_name etc.
Pour générer un lien de paiement, vous devez définir la valeur de la variable payment_sum, immédiatement après cela la variable robokassa_pay_url. Vous pouvez afficher cette variable sous forme de lien ou la placer dans un bouton avec le texte « Payer ».

EXEMPLE d'exécution du bloc (liens de paiement) :

Important !
Le lien de paiement est unique : il est impossible de le copier et de l'envoyer ensuite à d'autres clients !
Envoyez le lien de paiement via une variable dans le bot
Pour transmettre le lien dans le bouton, indiquez la variable dans le champ url du bouton :

Résultat du paiement lors de la génération du lien de paiement via payment_sum
Après un paiement réussi, un callback arrivera dans le bot. Dans le système, ce callback apparaît comme un message de l'utilisateur ; pour éviter qu'il ne puisse être envoyé par l'utilisateur, ils sont composés du premier mot de passe du service Robokassa et d'un suffixe avec le statut success, par exemple : qxgZ7zkNX4HHnG8UpZ61_success.

Après un paiement réussi, la variable robokassa_payment_completed est définie sur True.
Ce callback NE VOIT PAS le client, ils s'affichent uniquement pour l'opérateur
Le type de correspondance doit être "Correspondance exacte"
Pour effectuer un nouveau paiement, il faut impérativement remettre à zéro payment_sum, le lien précédemment généré, puis réaffecter la variable payment_sum pour obtenir un nouveau lien Exemple de remise à zéro des variables : robokassa_pay_url='' payment_sum=0
Après la fin du paiement, la variable robokassa_callback_data, contenant les données de réponse de la plateforme de paiement concernant l'opération effectuée. À partir du dictionnaire obtenu, vous pouvez extraire les données nécessaires à l'aide de la méthode get.
Comment créer un schéma de test
Exemple de schéma qui permettra de tester et de commencer rapidement à utiliser le service Robokassa :

L'illustration montre un exemple du premier bloc, dans lequel on demande à l'utilisateur combien il souhaite payer.
L'illustration ci-dessous montre les réglages de la flèche ; le commutateur « L'utilisateur saisit les données » doit y être activé et la variable payment_sum :

Ensuite, dans le bloc de paiement suivant, ajoutez un bouton et définissez dans la ligne url la variable robokassa_pay_url :


Le schéma fonctionnera comme suit :

Au clic sur le bouton, le montant saisi par le client sera disponible au paiement.
Après le paiement, un callback arrivera, auquel on peut également configurer une réaction.

Important !
Il n'existe pas de callback de paiement échoué dans Robokassa.
Pour cela, ajoutez un autre bloc avec condition, et dans la ligne de condition indiquez un callback du type «qxgZ7zkNX4HHnG8UpZ61_success":

Le type de vérification doit impérativement être « Correspondance exacte »
Le schéma fonctionnera comme suit :

Comment générer une demande de fiscalisation
Dans le bouton avec la fonction « Paiement »
Lors de la création du bouton dans le menu déroulant « Données pour la génération du reçu », remplissez les champs « Nom du produit », « Montant total en roubles », « Quantité », « Taux de TVA », « Système d'imposition ».

Plus de détails dans la section "Pour générer un reçu".
À l'aide de la variable payment_sum
Comme la génération du lien se fait au moment où vous avez défini la valeur de la variable payment_sum, vous devez définir les variables products_for_receipt et robokassa_sno.
Important :
lors de la génération du lien via la variable payment_sum, le système d'imposition est défini dans la variable robokassa_sno.
payment_sum doit être égale au coût total de tous les produits (somme de tous les paramètres sum).
Exemple :
session_timeout = 7200
product_name = Premier paiement
robokassa_sno = osn
products_for_receipt = [{"name": "Nom du produit", "quantity": 2, "sum": 2, "tax": "none"}, {"name": "Nom du produit 2", "quantity": 1, "sum": 6, "tax": "none"}]
payment_sum = 10
Pour les fonctions get_robokassa_payment_url et robokassa_recurrent_payment
Lors de l'appel des fonctions get_robokassa_payment_url ou de la fonction robokassa_recurrent_payment transmettez en tant qu'arguments les variables taxation et products_for_receipt selon la description ci-dessous.
Les fonctions prépareront un lien en tenant compte de la nomenclature des produits et généreront une demande de fiscalisation.
Important :
Les variables taxation et products_for_receipt doivent être définies pour chaque paiement individuel.
Le service Robokassa ne stocke pas ces paramètres et ne pourra pas effectuer la fiscalisation des paiements pour lesquels la nomenclature n'a pas été transmise.
products_for_receipt - tableau contenant la nomenclature des produits.
Chaque unité de produit doit être représentée sous la forme d'un dictionnaire contenant les paramètres name, quantity, sum, tax, payment_method, payment_object et nomenclature_code.
! products_for_receipt doivent être indiqués dans le format suivant :
[
{"name": "Nom du produit", "quantity": "Quantité du produit", "sum": "Coût du produit", "tax": "Taux de TVA"},
{"name": "Nom du produit 2", "quantity": "Quantité du produit 2", "sum": "Coût du produit", "tax": "Taux de TVA"}
]
où,
1) name - nom du produit. Si vous utilisez des caractères spéciaux dans le nom du produit, par exemple des guillemets, ils doivent impérativement être échappés.
2) quantity - quantité ou poids du produit (nombre entier ou décimal avec un point)
3) sum ou amount (obligatoire, deux variantes de nom) - montant total en roubles pour toute la quantité de ce produit, en tenant compte de toutes les remises, bonus et prix spéciaux possibles.
4) tax ou vat_code - (obligatoire, deux variantes de nom, la valeur dépend du nom) - taux de TVA. Ce paramètre définit le taux d'imposition dans la caisse enregistreuse.
none
sans TVA
vat0
TVA au taux de 0 %
vat5
TVA au taux de 5 %
vat12
TVA au taux de 12 %
vat16
TVA au taux de 16 %
'1'
Sans TVA
'2'
TVA au taux de 0 %
'8'
TVA au taux de 5 %
'15'
TVA au taux de 12 %
'14'
TVA au taux de 16 %
5) method ou payment_method - (deux variantes de nom, paramètre facultatif) indicateur du mode de calcul.
full_prepayment
prépaiement à 100 %. Paiement préalable intégral avant la remise de l'objet du calcul
prepayment
prépaiement. Paiement préalable partiel avant la remise de l'objet du calcul
advance
acompte
full_payment
règlement complet. Paiement intégral, y compris en tenant compte de l'acompte (paiement préalable) au moment de la remise de l'objet du calcul;
partial_payment
règlement partiel et à crédit. Paiement partiel de l'objet du calcul au moment de sa remise, avec paiement ultérieur à crédit;
credit
remise à crédit. Remise de l'objet du calcul sans paiement au moment de sa remise, avec paiement ultérieur à crédit;
credit_payment
paiement du crédit. Paiement de l'objet du calcul après sa remise avec paiement à crédit (paiement du crédit).
6) object ou payment_object - (deux variantes du nom, paramètre facultatif) objet du calcul (si non transmis, ce sera commodity (marchandise))
commodity
Marchandise. À propos de la marchandise vendue, à l’exception de la marchandise soumise à accise (nom et autres informations décrivant la marchandise)
excise
Marchandise soumise à accise. À propos de la marchandise soumise à accise vendue (nom et autres informations décrivant la marchandise)
job
Travail. À propos du travail effectué (nom et autres informations décrivant le travail)
service
Service. À propos du service fourni (nom et autres informations décrivant le service)
gambling_bet
Mise de jeu d’argent. Concernant l’acceptation des mises lors de l’activité d’organisation de jeux d’argent
gambling_prize
gain d’un jeu d’argent. Concernant le versement de fonds sous forme de gain lors de l’activité d’organisation de jeux d’argent
lottery
billet de loterie. Concernant l’acceptation de fonds lors de la vente de billets de loterie, de billets de loterie électroniques, de l’acceptation de mises de loterie lors de l’activité d’organisation de loteries
lottery_prize
gain de loterie. Concernant le versement de fonds sous forme de gain lors de l’activité d’organisation de loteries
intellectual_activity
fourniture des résultats d’une activité intellectuelle. Concernant l’octroi de droits d’utilisation des résultats d’une activité intellectuelle ou des moyens d’individualisation
payment
paiement. À propos d’un acompte, arrhes, prépaiement, crédit, versement sur le montant dû, pénalité, amende, rémunération, bonus et autre objet de calcul similaire
agent_commission
rémunération d’agent. À propos de la rémunération de l’utilisateur qui est agent de paiement (sous-agent), agent de paiement bancaire (sous-agent), commissionnaire, mandataire ou autre agent ;
composite
objet de calcul composite. À propos d’un objet de calcul composé d’objets, chacun desquels peut se voir attribuer la valeur des signes énumérés ci-dessus
another
autre objet de calcul. À propos d’un objet de calcul ne relevant pas des objets de calcul énumérés ci-dessus
property_right
droit de propriété
non-operating_gain
revenu hors exploitation
insurance_premium
cotisations d’assurance
sales_tax
taxe sur le commerce
resort_fee
taxe de séjour
7) nomenclature_code - (conditionnellement obligatoire) marquage du produit : transmis tel qu’il est imprimé sur l’emballage du produit.
Le paramètre est obligatoire uniquement pour les magasins qui vendent des produits soumis au marquage obligatoire.
Le code de marquage se trouve sur l’emballage du produit, à côté du code-barres ou sous forme de code QR.
Important ! Pour la fiscalisation, il est important de transmettre les paramètres du reçu.
Le format correct du reçu est transmis de la manière suivante :
rec = [{"name": "Forfait 1 mois", "quantity": 1, "sum": 4800, "tax": "none"}]
response = robokassa_recurrent_payment(4800, 'Formation à l’école de pilotage Aviator', 'ru', rec, 'osn')
où il faut remplacer par vos propres données.
Création du reçu lors de l’acceptation du paiement dans les Cours sur la page du cours
Il faut sélectionner le système de paiement Robokassa dans la section « Paiement » des paramètres du cours :

Renseignez dans la section « Acquéreur » des paramètres du système de paiement (si cela n’a pas été fait auparavant) le champ « Taux de TVA ».

Quelles erreurs peuvent survenir
Code d’erreur 40
« Un second paiement d’une facture avec le même numéro est impossible. »
Après un paiement réussi, il faut transférer la conversation vers le bloc « Fin de la collecte des données », afin qu’un nouveau numéro de paiement soit généré.
Code d’erreur 34
« Le service de paiements récurrents n’est pas autorisé pour ce magasin. »
Code d’erreur 31
« Montant du paiement incorrect. »
Une telle erreur peut survenir lors de la redirection du client vers la page de paiement pour l’émission de la facture. Cela signifie que vous ne nous transmettez pas le montant pour lequel le paiement doit être effectué, ou que vous transmettez un montant égal à zéro.
Code d’erreur 29
« Paramètre Signature incorrect »
Il peut y avoir plusieurs raisons, mais elles sont toutes liées au script chargé de l’initialisation du paiement (plus précisément, à sa partie qui forme le paramètre Signature selon une formule composée de variables). Cette erreur est assez fréquente, et voici 3 causes possibles :
Première : identifiant de magasin incorrect (MerchantLogin) ;
Deuxième : mot de passe 1 incorrect (MerchantPass1) ;
Troisième : vous utilisez des paramètres supplémentaires (shp_), qui sont ajoutés au code du module de paiement, mais ne sont pas inclus dans la formule de calcul — ou l’inverse : ils sont indiqués dans la formule de calcul, mais pas dans le code. Si vous les utilisez, transmettez-les par ordre alphabétique — à la fois dans les paramètres de paiement et dans la formule de calcul du Signature.
Point important ! Si vous travaillez en mode test, en transmettant le paramètre IsTest=1 ou en l’activant par une case à cocher dans les paramètres du module/bot, utilisez uniquement la paire de mots de passe techniques de test (onglet « Paramètres techniques » de la fiche de votre magasin).
Code d’erreur 23
« Le paiement de test ne peut pas être créé. Le magasin ne possède pas de paramètres de test. »
Cela signifie qu’avant d’effectuer un paiement de test, vous n’avez pas renseigné toutes les données nécessaires dans le bloc « Paramètres d’exécution des paiements de test » de l’onglet « Paramètres techniques ».
Code d’erreur 25
« Le magasin n’est pas activé. »
Cette erreur survient assez souvent, et il peut y avoir 2 raisons.
Première : c’est bien le cas — et il faut activer le magasin, puis seulement émettre la facture.
Deuxième : vous avez saisi de manière incorrecte l’identifiant du magasin dans les paramètres techniques du site. Vous pouvez consulter la valeur correcte dans la section « Mes magasins » de l’espace personnel. Allez dans l’onglet « Paramètres techniques » et trouvez le champ « Identifiant du magasin ». Copiez l’identifiant et saisissez-le dans les paramètres du site.
Comment effectuer les paiements automatiques du service Robokassa
Instructions pas à pas pour connecter les paiements automatiques du service Robokassa
Étape 1. Activer les paiements automatiques dans le bouton de paiement
Allez dans les paramètres du bloc dans lequel vous fournissez le lien de paiement, puis allez dans les paramètres du bouton :

Ensuite, dans les paramètres du bouton, trouvez la case à cocher « Paiements automatiques » et activez-la :

Si vous souhaitez accepter les paiements automatiques dans tous les boutons de paiement, vous pouvez les activer dans les paramètres de connexion du système de paiement :

Étape 2. Effectuer un paiement normal. Ensuite, il faut effectuer un paiement normal (obtenir un lien de paiement et faire en sorte que le client le paie), comme décrit ci-dessus. Après un paiement réussi, la variable apparaîtra chez le client robokassa_previous_invoice_id avec l’identifiant du paiement.
La variable robokassa_previous_invoice_id est obligatoire pour les paiements ultérieurs. Si vous la supprimez, le prochain paiement automatique NE pourra pas être effectué.
Attention !
Désactivez la case à cocher "Paiements en mode test" (si elle est active), sinon la variable robokassa_previous_invoice_id avec l’identifiant du paiement ne sera pas générée !


Étape 3. Planifier le prélèvement automatique
Depuis le bloc Paiement réussi, nous planifions une flèche avec minuterie vers le bloc avec le paiement automatique. À titre d’exemple, planifions le paiement suivant dans 30 jours.

Pour que le paiement automatique s’exécute dans le bloc souhaité, dans le champ Calculateur, il faut ajouter l’appel de la fonction robokassa_recurrent_payment, en lui transmettant les paramètres dans l’ordre indiqué :
payment_amount - montant à payer (prix du produit en roubles)
description - nom du produit. Dans ce champ, vous pouvez utiliser uniquement des caractères de l’alphabet anglais ou russe, des chiffres et des signes de ponctuation. La longueur maximale est de 100 caractères. Cette information est affichée dans l’interface Robokassa et dans le reçu électronique que le client reçoit après un paiement réussi.
country - zone de domaine (« ru » ou « kz »)
products_for_receipt - paramètres pour la génération des reçus.
Plus de détails dans la section « Comment générer une requête de fiscalisation -> Pour les fonctions get_robokassa_payment_url et robokassa_recurrent_payment
taxation - régime fiscal.
Plus de détails dans la section « Comment générer une requête de fiscalisation -> Pour les fonctions get_robokassa_payment_url et robokassa_recurrent_payment
Exemple de requête de paiement automatique :

Lors de l’exécution d’un paiement automatique, il ne doit pas y avoir de lien de paiement Robokassa ni de variable payment_sum!
Étape 4. Planifier des prélèvements réguliers et configurer la possibilité de refuser les paiements automatiques. Pour répéter régulièrement les paiements, nous planifions une boucle - une flèche avec délai, par exemple 30 jours.

Si vous avez prévu la possibilité d’annuler les paiements automatiques, alors pour que le prochain paiement ne soit pas exécuté, il faut supprimer chez le client la variable robokassa_previous_invoice_id
Pour cela, dans le champ Calculateur, nous supprimons la variable :
robokassa_previous_invoice_id = ""

Paiement normal avec les paiements automatiques activés
Si les paiements automatiques sont activés, mais qu’un lien sans abonnement (sans paiements automatiques) est nécessaire, alors avant de générer le lien, il faut définir la variable robokassa_manual_recurrent_disable avec la valeur 1
Dans le champ Calculateur, déclarons la variable :
robokassa_manual_recurrent_disable = 1

Attention !
Le callback des paiements automatiques est identique au callback reçu lors des paiements réussis.
Nous avons expliqué comment configurer la réaction au callback dans la section "Comment traiter le résultat"
Quelles sont les exigences du service Robokassa pour les chatbots
Réponse officielle du service Robokassa :
Vous pouvez placer un produit sur le marché avec une description et un prix et accepter le paiement dans le bot ; vous pouvez créer une page simple avec une description, un prix, des coordonnées et l’indication que la livraison du produit / la fourniture du service est électronique. Nous devons avoir un lien vers le produit sur le marché ou vers le site, car nous ne pouvons pas savoir ce que vous vendez dans votre bot ni dans quel bot nous sommes.
Nous n’incluons pas le lien vers le canal Telegram comme URL. Les exigences concernant le contenu du site sont également les suivantes : « Le site doit être fonctionnel, avec un contenu renseigné et des liens internes opérationnels.
Les produits et services sur votre site doivent être décrits en détail : la description doit inclure les caractéristiques des produits et services proposés, leurs propriétés pour le consommateur et leur prix actuel.
Votre site doit obligatoirement afficher des informations à jour : téléphone, e-mail, règles de passation et délais d’exécution de la commande, conditions de paiement, de livraison et de retour.
Chaque site est examiné individuellement.
Robokassa dans Telegram
Connexion du bot de test RobokassaPaymentTestBot.
Lors du choix de Connect Robokassa Test, l’utilisateur est redirigé vers le bot RobokassaPaymentTestBot.
L’utilisateur appuie sur le bouton /start.
L’utilisateur reçoit une réponse du bot : « Entrez l’ID du magasin ».
Il faut saisir l’id du magasin dans le service Robokassa.
Le bot demandera une confirmation attestant de la propriété du magasin via l’envoi d’un SMS au numéro indiqué dans le magasin : « SMS envoyé au numéro *%%%% » où %%%% correspond aux 4 derniers chiffres du téléphone
L’utilisateur saisit un code à 6 chiffres.
Si tout est réussi, le message suivant s’affichera à l’utilisateur : « Vous avez connecté avec succès le bot @BotName à Robokassa. @BotFather vous сообщera un nouveau token. »
Après cela, un token de paiement apparaît dans BotFather, auquel les paiements sont connectés.
Connexion du bot live RobokassaPaymentBot.
Lors du choix de Connect Robokassa Live, l’utilisateur est redirigé vers le bot RobokassaPaymentBot,
L’utilisateur appuie sur le bouton /start.
L’utilisateur reçoit une réponse du bot : « Entrez l’ID du magasin ».
Il faut saisir l’id du magasin dans le service Robokassa.
Le bot demandera une confirmation attestant de la propriété du magasin via l’envoi d’un SMS au numéro indiqué dans le magasin : « SMS envoyé au numéro *%%%% », où %%%% correspond aux 4 derniers chiffres du téléphone
L’utilisateur saisit un code à 6 chiffres.
Si tout est réussi, le message suivant s’affichera à l’utilisateur : « Vous avez connecté avec succès le bot @BotName à Robokassa. @BotFather vous сообщera un nouveau token. »
Après cela, un token de paiement apparaît dans BotFather, auquel les paiements sont connectés.
Le traitement des résultats de paiement est similaire à celui décrit ici
Mis à jour