Comment configurer Robokassa

Voyons comment mettre en œuvre l'acceptation des paiements dans le bot via le service Robokassa.

  1. Créez une boutique en ligne dans votre compte personnel du service Robokassa et indiquez les paramètres techniques suivants :

Créez des mots de passe de test et effectuez la configuration initiale en mode test.

Comment connecter Robokassa à MaviBot ?

Accédez à la section "Acquiring" et cliquez sur "Connecter" sur la vignette Robokassa :

et remplissez le formulaire dans la fenêtre qui s'ouvre :

  1. Champ Identifiant de la boutique — Shop ID, que vous pouvez trouver dans les paramètres de la boutique dans votre compte personnel Robokassa.
  2. Mot de passe #1, mot de passe #2 — séquences uniques générées de chiffres+lettres.
  3. Champ Taux de TVA. Vous devez indiquer le code approprié pour transmettre la valeur de la TVA. Ce champ définit le taux d'imposition dans le KKT. Il est déterminé pour chaque type de produit individuellement, mais pour toutes les unités d'un produit spécifique 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

Le lien de paiement dans le bloc peut être généré PAR L'UN des moyens disponibles :

Bouton avec la fonction Paiement

Le lien de paiement peut être créé dans un bouton avec la fonction "Paiement".

Comment créer un bouton avec la fonction "Paiement" est expliqué ici

Examinons tous les paramètres possibles de ce bouton. La création d'un bouton avec la fonction Paiement est expliquée dans cet article :

Paramètres obligatoires du bouton Paiement

Pour générer un lien de paiement dans les paramètres du bouton, vous devez spécifier les paramètres obligatoires : Montant et Nom du produit.

champ Montant. Dans ce champ, indiquez 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.

NE PAS utiliser de guillemets doubles dans le nom du produit : supprimez-les ou remplacez-les par des guillemets simples.

case à cocher Paiement automatique. Pour activer le paiement automatique

case à cocher Avec notification de clic. Pour suivre le clic sur le lien de paiement, vous pouvez cocher la case. Dans ce cas, lorsque le bouton est cliqué, une notification indiquant qu'un clic sur le lien a été effectué sera envoyée dans le dialogue avec le client dans Salebot.

Cette notification peut être utilisée pour configurer la logique ultérieure du bot.

De nombreux systèmes de paiement prennent en charge les caisses en ligne cloud, nécessaires conformément à la loi fédérale 54.
Lisez les particularités de l'émission des reçus sur le site du système de paiement choisi pour éviter une situation délicate avec l'inspection des impôts.

Pour générer un reçu

menu Données pour la génération du reçu. En cliquant, un menu déroulant s'ouvre avec les paramètres pour générer le reçu :

champ Nom du produit. Obligatoire pour la génération du reçu.

NE PAS utiliser de guillemets doubles dans le Nom du produit : supprimez-les ou remplacez-les par des guillemets simples.

champ Montant total en roubles. Dans ce champ, vous devez indiquer le montant à payer en tenant compte de la quantité de produits. Si la quantité est égale à 1, alors le Montant total en roubles est égal à la valeur du champ Montant dans le paramètre obligatoire du bouton

champ Quantité. Quantité ou poids du produit. Vous pouvez transmettre un nombre entier ou fractionnaire 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 reçoit le bloc avec le bouton "Paiement", les variables client seront automatiquement créées :

Variable client de service __payments , qui stocke le montant, l'identifiant du lien créé, nécessaire pour identifier le hook du système de paiement.

La variable client de service __payments NE DOIT PAS être supprimée ou modifiée !

Variable client error_payment_button créée si une erreur se produit lors de la création 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 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'y a pas de callbacks pour les paiements échoués dans le service Robokassa.

Fail URL est uniquement la page de paiement échoué 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 pour effectuer le paiement, testez les paramètres créés. Si le paiement réussit, un CALLBACK sera envoyé AUTOMATIQUEMENT dans le dialogue du client (section "Clients"), composé de 10 caractères de la clé secrète du système de paiement, du mot _success et du montant du paiement séparé par un espace. Le callback est généré automatiquement, vous n'avez pas besoin de le composer vous-même ou de le demander au support du système de paiement.

Par exemple : ovg58keefc_success 2999, où :

ovg58keefc : 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)

2999 : montant du paiement

Traitement du bloc :

Callback :

Les callbacks (notifications) du système de paiement ne sont PAS VISIBLES par l'utilisateur. Ils s'affichent uniquement dans l'onglet "Clients" et sont visibles par l'opérateur/l'administrateur.

Exemple de configuration de la réaction au callback

Dans le bloc avec condition (cela peut être un bloc "Condition de départ" ou un bloc "Non-état avec condition"), vous devez spécifier le callback qui arrive lors du paiement.

Important : choisir la correspondance Correspondance exacte ou Par présence de mots-clés

Ensuite, lors du paiement, le client recevra un 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é, un CALLBACK sera envoyé AUTOMATIQUEMENT au bot, composé de 10 caractères de la clé secrète du système de paiement, du mot _different_amounts et de l'ID unique du paiement séparé par un espace

Par exemple : ovg58keefc_different_amounts 123456 , où :

ovg58keefc : 10 caractères de la clé secrète du système de paiement

_different_amounts : résultat du traitement de la requête (le montant du paiement diffère du montant dans le lien)

123456 : ID 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

Le nom de la variable est défini par vous-même. Sur les captures d'écran, des exemples de noms de variables.

Cette variable contiendra le lien de paiement. La variable peut être affichée à l'écran 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, nécessaires conformément à la loi fédérale 54.
Lisez les particularités de l'émission des reçus sur le site du système de paiement choisi pour éviter une situation délicate avec l'inspection des impôts.

Calculateur

Exemple 1 :

Description des paramètres

get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)

Paramètres de la fonction :

Paramètre Valeur du paramètre
amount

**Montant à payer.** Dans ce champ, indiquez 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.**

Plus de détails ici.

recurrent **Activation du paiement automatique.** Si le paiement automatique est activé, transmettez la valeur 1, s'il est désactivé, transmettez la valeur 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 de code à copier
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 à l'écran sous forme de lien dans un message ou placée dans un bouton avec du texte, par exemple, "Acheter".

Si le bloc contient plusieurs fonctions pour obtenir un lien et qu'une erreur est commise, la valeur de l'erreur sera écrite dans la variable error_payment_func


L'erreur sera écrite pour la dernière fonction dans le Calculateur

Après avoir correctement configuré le paiement et généré le lien pour effectuer le paiement, testez les paramètres créés.

Comment ajouter une description du 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, un CALLBACK sera envoyé AUTOMATIQUEMENT dans le dialogue du client (section "Clients"), composé de 10 caractères de la clé secrète du système de paiement, du mot _success et du montant du paiement séparé par un espace. Le callback est généré automatiquement, vous n'avez pas besoin de le composer vous-même ou de le demander au support du système de paiement.

Par exemple : ovg58keefc_success 1500, où :

ovg58keefc : 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)

1500 : montant du paiement

Attention !

Le callback est visible uniquement par vous dans le dialogue avec le client.

Le client ne voit pas le callback, mais vous pouvez configurer une réaction en cas de traitement réussi du paiement.

Exemple

Paramètres du bloc avec la fonction get_robokassa_payment_url:

  1. Si vous fournissez le lien dans le texte :

Important !

Le lien de paiement est unique : il ne peut pas être copié et envoyé à d'autres clients !

Envoyez le lien de paiement via une variable dans le bot (voir fig. 17).

Callback en cas de paiement réussi :

  1. Lien dans un 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 des paiements en générant un lien à l'aide de la variable payment_sum, dans laquelle il suffit d'indiquer le montant du paiement.

Remarque : la variable payment_sum prend la valeur 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, la variable robokassa_pay_url apparaît. Cette variable peut être affichée à l'écran sous forme de lien ou placée sur un bouton avec le texte "Payer".

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

Important !

Le lien de paiement est unique : il ne peut pas être copié et envoyé à d'autres clients !

Envoyez le lien de paiement via une variable dans le bot

Pour transmettre le lien dans un bouton, indiquez la variable dans le bouton dans le champ url :

Résultat du paiement lors de la création du lien de paiement via payment_sum

Après un paiement réussi, un callback arrive dans le bot. Ce callback est visible dans le système comme un message de l'utilisateur ; pour qu'il ne puisse pas être envoyé par l'utilisateur, il se compose du premier mot de passe du service Robokassa et du suffixe avec le statut success, par exemple : qxgZ7zkNX4HHnG8UpZ61_success.

De plus, après un paiement réussi, la variable robokassa_payment_completed est définie sur True.

Ce callback N'EST PAS VISIBLE par l'utilisateur, il s'affiche uniquement pour l'opérateur

Le type de comparaison doit être "Correspondance exacte"

Pour effectuer un nouveau paiement, il est impératif de réinitialiser payment_sum, le lien précédemment créé, puis de réaffecter la variable payment_sum pour obtenir un nouveau lien

Exemple de réinitialisation des variables :
robokassa_pay_url=''
payment_sum=0

Après la fin du paiement, la variable robokassa_callback_data est ajoutée au client, contenant les données de réponse du système de paiement pour 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 vous permettra de tester et de commencer rapidement à travailler avec le service Robokassa :

La figure montre un exemple du premier bloc, dans lequel on demande à l'utilisateur combien il souhaite payer.

Sur la figure ci-dessous, les paramètres de la flèche : l'interrupteur "L'utilisateur saisit des données" doit être activé et la variable payment_sum doit être inscrite dans le champ :

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

Le schéma fonctionnera comme suit :

En cliquant sur le bouton, le montant saisi par le client sera disponible pour le paiement.

Après le paiement, un callback arrivera, sur lequel vous pouvez également configurer une réaction.

Important !

Il n'existe pas de callback de paiement non réussi dans Robokassa.

Pour ce faire, ajoutez un autre bloc avec une condition, et dans la ligne de condition, inscrivez le callback sous la forme "qxgZ7zkNX4HHnG8UpZ61_success" :

Le type de vérification doit impérativement être défini sur "Correspondance exacte"

Le schéma fonctionnera comme suit :

Comment formuler une demande de fiscalisation

Dans un bouton avec la fonction "Paiement"

Lors de la création d'un bouton, dans le menu déroulant "Données pour la formation du reçu", remplissez les champs "Nom du produit", "Montant total en roubles", "Quantité", "Taux de TVA", "Système de taxation".

Plus de détails dans la section "Pour la formation du reçu".

À l'aide de la variable payment_sum

Étant donné que la génération du lien se produit 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 création du lien via la variable payment_sum, le système de taxation 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 formuleront 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.

  1. products_for_receipt - tableau contenant la nomenclature des produits.

Chaque unité de produit doit être représentée sous forme de dictionnaire contenant les paramètres name, quantity, sum, tax, payment_method, payment_object et nomenclature_code.


!** products_for_receipt doit être spécifié 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 fractionnaire 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 éventuels.

  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 de taxe dans la caisse enregistreuse.

Valeurs pour tax :

Valeur Description
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%

Valeurs pour vat_code :

Valeurs Description
'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%
  1. method ou payment_method - (deux variantes de nom, paramètre facultatif) signe du mode de calcul.
Valeurs possibles du paramètre : Ce que signifie la valeur :
full_prepayment prépaiment 100%. Paiement préalable complet avant le transfert de l'objet du calcul
prepayment prépaiment. Paiement préalable partiel avant le transfert de l'objet du calcul
advance avance
full_payment paiement complet. Paiement complet, y compris en tenant compte de l'avance (paiement préalable) au moment du transfert de l'objet du calcul ;
partial_payment paiement partiel et crédit. Paiement partiel de l'objet du calcul au moment de son transfert avec paiement ultérieur à crédit ;
credit transfert à crédit. Transfert de l'objet du calcul sans son paiement au moment de son transfert avec paiement ultérieur à crédit ;
credit_payment paiement du crédit. Paiement de l'objet du calcul après son transfert avec paiement à crédit (paiement du crédit).
  1. object ou payment_object - (deux variantes de nom, paramètre facultatif) objet du calcul (si non transmis, sera commodity (produit))
Valeurs possibles du paramètre Ce que signifie la valeur
commodity Produit. Sur le produit vendu, à l'exception du produit soumis à accise (nom et autres informations décrivant le produit)
excise Produit soumis à accise. Sur le produit soumis à accise vendu (nom et autres informations décrivant le produit)
job Travail. Sur le travail effectué (nom et autres informations décrivant le travail)
service Service. Sur le service fourni (nom et autres informations décrivant le service)
gambling_bet Mise de jeu. Sur la réception de mises lors de l'exercice d'activités de jeux de hasard
gambling_prize Gain de jeu. Sur le paiement de fonds sous forme de gain lors de l'exercice d'activités de jeux de hasard
lottery Billet de loterie. Sur la réception de fonds lors de la vente de billets de loterie, de billets de loterie électroniques, de la réception de mises de loterie lors de l'exercice d'activités de loterie
lottery_prize Gain de loterie. Sur le paiement de fonds sous forme de gain lors de l'exercice d'activités de loterie
intellectual_activity Fourniture de résultats d'activité intellectuelle. Sur l'octroi de droits d'utilisation des résultats de l'activité intellectuelle ou des moyens d'individualisation
payment Paiement. Sur l'avance, l'acompte, le prépaiement, le crédit, l'apport en paiement, la pénalité, l'amende, la rémunération, le bonus et tout autre objet de calcul similaire
agent_commission Commission d'agent. Sur la rémunération de l'utilisateur qui est un agent de paiement (sous-agent), un agent de paiement bancaire (sous-agent), un commissionnaire, un mandataire ou un autre agent ;
composite Objet de calcul composite. Sur l'objet de calcul composé d'objets, chacun pouvant se voir attribuer une valeur des signes énumérés ci-dessus
another Autre objet de calcul. Sur l'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 non opérationnel
insurance_premium Primes d'assurance
sales_tax Taxe sur les ventes
resort_fee Taxe de séjour
  1. nomenclature_code - (conditionnellement obligatoire) marquage du produit : il est 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 à un 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": "Пакет 1 месяц", "quantity": 1, "sum": 4800, "tax": "none"}]

response = robokassa_recurrent_payment(4800, 'Обучение в Лётной школе Авиатор', 'ru', rec, 'osn')

où vous devez insérer vos propres données.

Génération du reçu lors de l'acceptation du paiement dans les Cours sur la page du cours

Vous devez sélectionner dans la section "Paiement" dans les paramètres du cours le système de paiement Robokassa :

Remplissez dans la section "Acquiring" dans les paramètres du système de paiement (si vous ne l'avez pas fait auparavant) le champ "Taux de TVA".

Quelles erreurs peuvent survenir

Code d'erreur 40

« Le paiement répété d'une facture avec le même numéro est impossible ».

Après un paiement réussi, il est nécessaire de faire passer le dialogue dans le bloc "Fin de la collecte de 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 le magasin ».

Code d'erreur 31

« Montant du paiement incorrect ».

Cette erreur peut survenir lors de la redirection du client vers la page de paiement pour émettre une facture. Elle signifie que vous ne nous transmettez pas le montant sur lequel le paiement doit être effectué, ou que vous transmettez un montant égal à zéro.

Code d'erreur 29

« Paramètre Signature incorrect »

Plusieurs causes sont possibles, mais elles sont toutes liées au script responsable de l'initialisation du paiement (plus précisément, la partie qui forme le paramètre Signature selon une formule composée de variables). Cette erreur est assez courante, et voici 3 causes possibles :

  • Première : Identifiant de magasin (MerchantLogin) incorrect ;
  • Deuxième : Mot de passe 1 (MerchantPass1) incorrect ;
  • Troisième : vous utilisez des paramètres supplémentaires (shp_) qui ont été ajoutés au code du programme de la caisse, mais qui ne sont pas inclus dans la formule de calcul - ou inversement, ils sont spécifiés dans la formule de calcul mais pas dans le code. Si de tels paramètres sont utilisés, transmettez-les dans l'ordre alphabétique – à la fois dans les paramètres de paiement et dans la formule de calcul de la Signature.

Point important ! Si vous travaillez en mode test, en transmettant le paramètre IsTest=1 ou en le cochant dans les paramètres du module/du 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 test ne peut pas être créé. Le magasin n'a pas de paramètres de test configurés ».

Cela signifie qu'avant d'effectuer un paiement test, vous n'avez pas rempli toutes les données nécessaires dans le bloc « Paramètres pour les paiements tests » de l'onglet « Paramètres techniques ».

Code d'erreur 25

« Le magasin n'est pas activé ».

Cette erreur est assez fréquente et peut avoir 2 causes.

  • Première : c'est effectivement le cas – il faut activer le magasin, puis seulement émettre la facture.
  • Deuxième : vous avez mal saisi l'Identifiant de magasin dans les paramètres techniques sur le site. Vous pouvez voir le bon identifiant dans la section « Mes magasins » de votre Espace personnel. Allez dans l'onglet « Paramètres techniques » et trouvez le champ « Identifiant de magasin ». Copiez l'identifiant et saisissez-le dans les paramètres du site.

Comment effectuer des paiements automatiques du service Robokassa

Instructions étape par étape pour connecter les paiements automatiques pour le service Robokassa

Étape 1. Activer les paiements automatiques dans le bouton de paiement

Allez dans les paramètres du bloc dans lequel vous donnez le lien de paiement et 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 activer les paiements automatiques dans les paramètres de connexion du système de paiement :

Étape 2. Effectuer un paiement normal.

Ensuite, vous devez effectuer un paiement normal (obtenir un lien de paiement et le faire payer par le client), comme décrit ci-dessus. Après un paiement réussi, le client aura une variable 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

À partir du bloc Paiement réussi, planifiez une flèche avec une minuterie vers le bloc avec le paiement automatique. Par exemple, planifions le prochain paiement dans 30 jours.

Pour que le paiement automatique s'effectue dans le bloc souhaité, dans le champ Calculatrice, vous devez ajouter un appel à la fonction robokassa_recurrent_payment, en lui transmettant les paramètres dans l'ordre indiqué :

  1. payment_amount - montant à payer (prix du produit en roubles)
  2. description - nom du produit. Dans ce champ, seuls les caractères de l'alphabet anglais ou russe, les chiffres et les signes de ponctuation peuvent être utilisés. Longueur maximale — 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.
  3. country - zone de domaine ('ru' ou 'kz')
  4. 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 demande de fiscalisation -> Pour les fonctions get_robokassa_payment_url et robokassa_recurrent_payment

  1. taxation - système de taxation.

Plus de détails dans la section "Comment générer une demande de fiscalisation -> Pour les fonctions get_robokassa_payment_url et robokassa_recurrent_payment

Exemple de demande de paiement automatique :

Lors de l'exécution du paiement automatique, il ne doit y avoir aucun lien de paiement Robokassa ni variable payment_sum !

Étape 4. Planifier les prélèvements réguliers et configurer la possibilité de refuser les paiements automatiques.

Pour répéter régulièrement les paiements, planifiez une boucle - une flèche avec un délai, par exemple, 30 jours.

Si vous avez prévu la possibilité d'annuler les paiements automatiques, pour que le prochain paiement ne soit pas effectué, vous devez supprimer la variable robokassa_previous_invoice_id chez le client.

Pour ce faire, dans le champ Calculatrice, supprimez la variable :

robokassa_previous_invoice_id = ""

Paiement normal avec 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, vous devez définir la variable robokassa_manual_recurrent_disable avec la valeur 1.

Dans le champ Calculatrice, déclarez la variable :
robokassa_manual_recurrent_disable = 1

Attention !

Le callback pour les paiements automatiques est identique au callback reçu lors des paiements réussis.

Comment configurer la réaction au callback est expliqué 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 unique avec une description, un prix, des coordonnées et une indication que la livraison du produit/la prestation du service est électronique. Nous devons avoir un lien vers le produit sur le marché ou vers le site, car ce que vous vendez dans votre bot et dans quel bot nous ne pouvons pas le savoir.

Nous n'incluons pas le lien vers la chaîne Telegram en tant qu'URL. Exigences concernant le contenu du site : "Le site doit être fonctionnel, avec un contenu rempli, des liens internes fonctionnels.

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 de consommation et le prix actuel.

Sur votre site, des informations à jour doivent obligatoirement être affichées : 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.

  1. Lors de la sélection de Connect Robokassa Test, l'utilisateur est redirigé vers le bot RobokassaPaymentTestBot.
  2. L'utilisateur appuie sur le bouton /démarrer.
  3. L'utilisateur reçoit la réponse du bot « Entrez l'ID du magasin ».
  4. Il est nécessaire de saisir l'id du magasin dans le service Robokassa.
  5. Le bot demandera une confirmation, confirmant la propriété du magasin en envoyant un SMS au numéro indiqué dans le magasin : « SMS envoyé au numéro *%%%% » où %%%% sont les 4 derniers chiffres du téléphone.
  6. L'utilisateur saisit un code à 6 chiffres.
  7. Si tout est réussi, l'utilisateur verra le message : « Vous avez connecté avec succès le bot @BotName à Robokassa. @BotFather vous communiquera un nouveau token. »
  8. Après cela, un token de paiement apparaît dans BotFather, auquel les paiements sont connectés.

Connexion du bot live RobokassaPaymentBot.

  1. Lors de la sélection de Connect Robokassa Live, l'utilisateur est redirigé vers le bot RobokassaPaymentBot,
  2. L'utilisateur appuie sur le bouton /démarrer.
  3. L'utilisateur reçoit la réponse du bot « Entrez l'ID du magasin ».
  4. Il est nécessaire de saisir l'id du magasin dans le service Robokassa.
  5. Le bot demandera une confirmation, confirmant la propriété du magasin en envoyant un SMS au numéro indiqué dans le magasin : « SMS envoyé au numéro *%%%% », où %%%% sont les 4 derniers chiffres du téléphone.
  6. L'utilisateur saisit un code à 6 chiffres.
  7. Si tout est réussi, l'utilisateur verra le message : « Vous avez connecté avec succès le bot @BotName à Robokassa. @BotFather vous communiquera un nouveau token. »
  8. 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