# Paypal

* [Comment configurer Paypal ](#kak-nastroit-paypal)lien Comment configurer Paypal
* [Comment créer un lien de paiement ](#sozdanie-ssylki-na-oplatu) lien Comment créer un lien de paiement
* [Comment créer un paiement récurrent](#kak-sozdat-rekkurentnyi-platezh) lien Comment créer un paiement récurrent
* [Comment traiter le résultat](#obrabotka-rezultata) lien Comment traiter le résultat

## Comment configurer Paypal

Pour travailler avec Paypal, vous devez obtenir deux clés : **client\_id** et **secret**

Allez sur la page <https://developer.paypal.com/developer/applications/>

Et choisissez dans la liste ou créez une nouvelle application :

![](https://lh4.googleusercontent.com/i7wtKw-RzPSHarXCkIVIqPvAvn_39t1r4CPL9lSmxzFc1mNiz24zHj4PJIUUhCzL-YXaNrQbK5edCP9bYHGXkIij59shZ6XPj3YZiVp4uRlDllvWRetnF1Y3GSbQXRZt03OOiGxs)

En haut, passez en mode Live et sélectionnez l’application souhaitée. La page des paramètres s’ouvre, où se trouvent les données dont nous avons besoin :<br>

![](https://lh4.googleusercontent.com/DEKr4nWXl27UVUoT4Ycl_nOx0Aj-M7KrLcgxWR-uTaUFV82416Wwd2ib4ghxQ3jiW5P53KfMwkqvB_ZS3KjLxNNdn8bzbpvVgfeV5HKsL_iFcv6bc1y_0yntseRKzwPUGz37bpnn)

Copiez les données et collez-les dans les champs appropriés dans les paramètres de Mavibot : allez dans la section « Acquisition » et trouvez le service Paypal :

<figure><img src="/files/9933c61c846bbf2ce76172bc21a04414513c7af6" alt=""><figcaption></figcaption></figure>

Ensuite, cliquez sur « Connecter » et remplissez les champs avec la clé secrète et l’ID client reçus précédemment :

<figure><img src="/files/e43cb2da9aa70d79cbf109cc5ee711fd04138608" alt=""><figcaption></figcaption></figure>

Ensuite, cliquez sur « Enregistrer les paramètres ». Cela termine la connexion.

## Comment créer un lien de paiement

### En utilisant la variable payment\_sum

Pour générer un lien de paiement, vous devez définir la valeur de la **payment\_sum** variable et juste après la **paypal\_pay\_url** variable apparaîtra.

| Paramètres de la fonction | Description du paramètre                                                                            | Remarque                                                                                                                                                   |
| ------------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **payment\_title**        | <p>(variable facultative)<br>il s’agit du nom du produit.</p>                                       | Si elle n’est pas spécifiée, elle est remplie avec le texte : **« Paiement de facture order\_id »** (order\_id est l’identifiant de commande dans mavibot) |
| **payment\_description**  | description du produit, champ facultatif                                                            |                                                                                                                                                            |
| **company\_name**         | le nom de votre société s’affiche tout en haut de la page de paiement (exemple ci-dessous, company) |                                                                                                                                                            |

![](https://lh4.googleusercontent.com/sVxsMZdMlVcetXrFFXEWC9lV6dNB3dzDTBWv05Cl5GiilrRWDHlAy69a_ntlX2jY3esyzOPv8TGDm-YHQwnkz1nVMlMtWL6M7rOqeJMNRs0KY22g_d50EksFL8U7y7pF2BZH6FqJ)

En outre, avant de spécifier payment\_sum, vous pouvez indiquer dans quelle langue la page de paiement sera affichée.

Pour cela, définissez la variable locale. La langue par défaut est <mark style="color:red;">**le russe (ru-RU).**</mark> Options possibles : da-DK, he-IL, id-ID, ja-JP, no-NO, pt-BR, ru-RU, sv-SE, th-TH, zh-CN, zh-HK, zh-TW, etc. (l’ensemble des langues disponibles varie, référez-vous à la source d’origine) lien [source originale](https://developer.paypal.com/api/rest/reference/locale-codes/))

Vous pouvez aussi préciser la devise dans laquelle le paiement est accepté. Pour cela, indiquez la **currency** variable, le <mark style="color:red;">**ruble (RUB)**</mark> est défini par défaut ; pour le dollar, définissez sa valeur sur USD (currency = USD). Les options de devise possibles peuvent être consultées au lien. lien  [au lien](https://developer.paypal.com/docs/api/reference/currency-codes/).&#x20;

Et le troisième paramètre supplémentaire est **company\_name** - le nom de votre société, affiché tout en haut de la page de paiement (exemple ci-dessous, company)

Le **paypal\_pay\_url** la variable peut être affichée sous forme de lien ou placée sur un bouton avec le texte « Payer ».

Le lien ressemble à : [https://www.paypal.com/checkoutnow?token=07N53571YM296381N](https://www.sandbox.paypal.com/checkoutnow?token=07N53571YM296381N)

Un exemple d’implémentation.

Définition du montant du paiement et du nom de l’entreprise

<figure><img src="/files/2a3e29d5934f52fcd98828617fbd9d3e155aee1f" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
&#x20;**Veuillez noter :** le **payment\_sum** la variable reçoit sa valeur en dernier, après les variables facultatives **payment\_title, company\_name,** etc.
{% endhint %}

Ensuite, spécifiez la variable #**{paypal\_pay\_url}** dans le deuxième bloc « Statut » :

1. La variable peut être spécifiée dans le champ message :

<figure><img src="/files/ea487c39fb0c4abc2fcf40961492813234472167" alt=""><figcaption></figcaption></figure>

2. La variable peut être spécifiée dans le champ url dans les paramètres de la pièce jointe :

<figure><img src="/files/bbb05338f2a4b27217233cb8f700ac6b06b6ceb6" alt=""><figcaption></figcaption></figure>

3. La variable peut être spécifiée dans le champ url dans les paramètres du bouton :

<figure><img src="/files/5a9d79190bc41d292d780a763a67e7033406a676" alt=""><figcaption></figcaption></figure>

Lors de l’ouverture du lien de paiement

![](https://lh3.googleusercontent.com/GvWy17AiTcE0apTWzoPjoADq9h9bXWMRjS61DC00iwnVfSojYKvGS6Puhr6Eg0KfBtBnUza1rY_Mlh0351ka2ikbmNkC6-9zjc2CP-LdUYOQjX4fMaB3V-AT9IRTrMbqRxD-KzW2)

### En utilisant la fonction calculatrice paypal\_payment\_url

Créez un bloc de constructeur d’entonnoir et utilisez la **paypal\_payment\_url** fonction dans la calculatrice, en lui transmettant les paramètres nécessaires :

<table><thead><tr><th width="264">Paramètres de la fonction</th><th>Description du paramètre</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark> <strong>payment_sum</strong></td><td>le paramètre obligatoire est le montant du paiement.</td></tr><tr><td><strong>currency</strong></td><td> La devise de paiement par défaut est « USD ». La liste complète est disponible au lien <a href="https://developer.paypal.com/docs/api/reference/currency-codes/">https://developer.paypal.com/docs/api/reference/currency-codes/</a></td></tr><tr><td><strong>payment_title</strong></td><td>l’en-tête du paiement (jusqu’à 127 caractères). (Si omis, il est rempli avec le texte : « Paiement de facture payment_id », où payment_id est l’ID de commande dans Mavibot)</td></tr><tr><td><strong>payment_description</strong></td><td>brève description du paiement<br>(<em>jusqu’à 127 caractères</em>)</td></tr><tr><td>company_name</td><td>paramètre facultatif, nom de l’organisation/de l’entreprise, etc.</td></tr><tr><td><strong>locale</strong></td><td>La langue de la page de paiement est indiquée comme en-US, fr-XC, etc.<br>Par défaut, c’est « ru-Ru ».<br>La liste complète est disponible au lien https://developer.paypal.com/api/rest/reference/locale-codes/</td></tr></tbody></table>

Lorsque la condition du bloc est remplie, le client recevra un lien de paiement, et la **paypal\_payment\_completed** variable client sera créée avec la valeur <mark style="color:red;">**False.**</mark>

<figure><img src="/files/981d2075c162571b01249e8070cf0d6d36a9a8f6" alt="" width="563"><figcaption></figcaption></figure>

`url = paypal_payment_url(2500,`` `<mark style="color:red;">`'RUB'`</mark>`, 'Paiement de facture payment_id','description du paiement', 'nom de l’organisation', 'ru-Ru')`

## Comment créer un paiement récurrent

Pour créer et recevoir un lien pour un paiement avec récurrence, vous devez créer un **plan d’abonnement** dans votre espace personnel.&#x20;

<figure><img src="/files/186cf591b9492e73e11f69c127ac94ca858a0c7b" alt="" width="548"><figcaption></figcaption></figure>

<figure><img src="/files/43b9c56cf2d6b5c3ac9b87106668e1daa4d6e0f8" alt="" width="563"><figcaption></figcaption></figure>

Sélection d’une offre déjà créée :

<figure><img src="/files/462a996b5fa54b82ee16f56e183a23c8ce98e877" alt="" width="563"><figcaption></figcaption></figure>

Sinon, saisissez le nom de l’offre dans la barre de recherche et cliquez sur « Créer ».

<figure><img src="/files/da1897e7680a4ec36bc7abce0de78e17c213c9fb" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/774a10d3acf7a00ac19ad93b3e408ff7b864df2d" alt="" width="563"><figcaption><p>Création d’une offre d’abonnement dans paypal</p></figcaption></figure>

Sélectionnez le type de prélèvement automatique Fixed :

<figure><img src="/files/de3d8b6120a954a24eb2c10d562efbd141997d81" alt="" width="563"><figcaption></figcaption></figure>

Créer un abonnement

<figure><img src="/files/2867421785542d23033b147c89d2a3069b7e1fac" alt="" width="563"><figcaption></figcaption></figure>

Choix de la devise de l’abonnement et des conditions de prélèvement :

{% hint style="danger" %} <mark style="color:red;">**Attention !!**</mark>&#x20;

Dans Mavibot, la devise par défaut est l’euro ; si le prélèvement est en dollars ou dans une autre devise, lors de la création de l’abonnement, indiquez la devise dont vous avez besoin et, dans Mavibot, la même devise provenant de l’abonnement Paypal.
{% endhint %}

<figure><img src="/files/1a0f0b0cd666a994f71730de1f9ff423297dd534" alt="" width="563"><figcaption></figcaption></figure>

Ensuite, activez l’abonnement :

<figure><img src="/files/34a368b16c3aa04bd2ff9eac3742f0ef61d476f7" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/6df55e2b0cdd6f2b10f05251dfb2ce67bbcf677a" alt="" width="563"><figcaption></figcaption></figure>

Après la création, son ID sera disponible, que nous utiliserons plus tard pour créer un abonnement et recevoir un lien de paiement.

<figure><img src="/files/d356af2e520a5a6169f80844254966bcc4a77cfb" alt="" width="563"><figcaption></figcaption></figure>

Le lien de paiement est généré et renvoyé par la fonction :\
**paypal\_subscription\_url(plan\_id, shipping\_currency, shipping\_payment\_sum, start\_time)**&#x20;

| Paramètres de la fonction                                    | Description du paramètre                                                                                                                                                                                                                                                   |
| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:red;">**!**</mark> **plan\_id**           | ID du plan d’abonnement                                                                                                                                                                                                                                                    |
| <mark style="color:red;">**!**</mark> **shipping\_currency** | si le paiement du plan spécifié est en dollars, vous n’avez rien à transmettre ; sinon, nous transmettons le code de devise que vous avez spécifié dans le plan. La devise dans laquelle la livraison est payée est transmise ici (même pour un coût nul). Par défaut, USD |
| **shipping\_payment\_sum**                                   | Il s’agit d’un paramètre facultatif qui spécifie le coût de la livraison. Par défaut, la valeur est zéro.                                                                                                                                                                  |
| **start\_time**                                              | <p>paramètre facultatif, date et heure du début de l’abonnement. Si vous ne transmettez rien, la date de début de l’abonnement = la date du paiement.<br> Formats : %d.%m.%Y ou %d.%m.%Y %H:%M. </p>                                                                       |

<figure><img src="/files/a9012f39474d51a2b189527c49cb21c90ad754f5" alt="" width="563"><figcaption></figcaption></figure>

Lors de la création du lien, la **paypal\_subscription\_id** variable apparaîtra également, contenant l’ID de l’abonnement.

Lors du paiement, vous recevrez un callback, semblable au paiement d’un paiement classique.

**paypal\_subscription\_data(paypal\_subscription\_id)** - obtenir des informations sur l’abonnement

| Paramètres de la fonction    | Description des paramètres |
| ---------------------------- | -------------------------- |
| **paypal\_subscription\_id** | l’ID de l’abonnement.      |

Le **résultat** de l’exécution de la fonction - est un tableau contenant toutes les informations sur l’abonnement, y compris le nombre de paiements, le nombre de tentatives de prélèvement échouées, le statut, et plus encore.

### Comment annuler l’abonnement

La fonction paypal\_remove\_subscription(paypal\_subscription\_id) aidera les clients à annuler leurs abonnements à vos services.

Paramètres :

| Paramètres de la fonction | Description                                                                              |
| ------------------------- | ---------------------------------------------------------------------------------------- |
| paypal\_subscription\_id  | l’ID de l’abonnement qui est enregistré dans la variable du client lors de l’abonnement. |

<figure><img src="/files/961e400b8eb6cac92dc140e874099b7525b60c64" alt=""><figcaption></figcaption></figure>

## Comment traiter le résultat

{% hint style="info" %}
Après un paiement réussi, des callbacks seront envoyés au bot, ce qui vous indiquera que le paiement a réussi.
{% endhint %}

{% hint style="success" %}
Dans le système, vous voyez les callbacks comme des messages de l’utilisateur, mais l’utilisateur lui-même NE LES VOIT PAS : ils sont affichés uniquement à l’opérateur.
{% endhint %}

{% hint style="danger" %}
Pour traiter le callback dans le bloc et envoyer à l’utilisateur des messages concernant l’état du paiement, utilisez le type de comparaison « Correspondance exacte ».
{% endhint %}

{% hint style="warning" %}
Les callbacks peuvent être retardés, donc après avoir affiché le lien de paiement à l’utilisateur, il est recommandé d’envoyer un message du type : « Après avoir effectué le paiement, veuillez attendre un message de confirmation indiquant que le paiement a réussi. »
{% endhint %}

### Pour le paiement direct

Le callback de paiement réussi se compose des 10 premiers caractères du secret et de la signature avec le statut. Par exemple : EHsWHYOoWV\_success

Exemple 1 : réaction à un paiement réussi à l’aide du bloc « Condition de démarrage » :

<figure><img src="/files/419a35566ba5e637ae82d20e6470aa5e3caba3dc" alt=""><figcaption></figcaption></figure>

Exemple 2 : réaction à un paiement réussi à l’aide du bloc « Condition de démarrage » :

<figure><img src="/files/65ef9c342c42b51f7178cde1783c9a508d567c45" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Si vous ne souhaitez pas sortir l’utilisateur du flux principal du chatbot, utilisez le bloc « Sans état avec condition » — les utilisateurs ne peuvent pas être redirigés directement vers ce bloc, donc après un paiement réussi ils resteront dans l’entonnoir principal, tout en recevant également une notification de succès du paiement.

Mais si vous souhaitez continuer l’entonnoir en fonction de l’événement de paiement réussi, utilisez le bloc « Condition de démarrage ». Dans ce cas, après l’exécution du bloc de paiement, l’utilisateur sera redirigé vers le bloc « Condition de démarrage », à partir duquel vous pourrez continuer à construire votre entonnoir.
{% endhint %}

{% hint style="info" %}
De plus amples informations sur les blocs conditionnels sont fournies dans l’article du même nom. [nous avons parlé des blocs avec condition](broken://pages/39246a461682c678f82fab4ff666ba0a082e593a) lien
{% endhint %}

En cas de paiement réussi, la variable paypal\_payment\_completed est définie sur True.

Une fois le paiement terminé, la variable paypal\_callback\_data est ajoutée au client, contenant les données actuelles du système de paiement sur l’état de la transaction. Vous pouvez extraire les données nécessaires du dictionnaire reçu à l’aide de la méthode get.

{% hint style="danger" %}
Pour effectuer un paiement répété, vous devez réinitialiser la variable payment\_sum, la variable avec le lien généré précédemment, puis réaffecter la variable payment\_sum ou appeler la fonction pour obtenir un nouveau lien.
{% endhint %}

### Pour les paiements d’abonnement

{% hint style="danger" %}
La fonction de configuration des callbacks pour les opérations liées aux abonnements a été ajoutée le 01/09/2024. Pour que les callbacks de cette catégorie fonctionnent correctement, vous devez désactiver puis reconnecter l’intégration du système de paiement Paypal dans votre projet.
{% endhint %}

Lors d’un paiement d’abonnement, le bot recevra l’un des messages suivants :

* concernant l’activation de l’abonnement. Par exemple, subscription\_I-PTV5H4MRC1H3\_activated;
* Notification d’un paiement récurrent d’abonnement réussi. Par exemple, subscription\_I-PTV5H4MRC1H3\_paid;
* ou concernant une erreur de paiement d’abonnement. Par exemple, subscription\_I-PTV5H4MRC1H3\_not\_paid;

Dans les exemples ci-dessus, « I-PTV5H4MRC1H3 » est l’ID de l’abonnement du client, auquel on peut accéder à l’aide de la variable paypal\_subscription\_id.

Le callback ajoutera la variable paypal\_subscription\_callback\_data au client, contenant les données actuelles du système de paiement sur l’état de la transaction. Vous pouvez extraire les données nécessaires du dictionnaire reçu à l’aide de la méthode get.

Exemple 1 : réaction à l’activation de l’abonnement à l’aide du bloc « Condition de démarrage » :

<figure><img src="/files/cb314dabca654364efcd7f671007c4a64bc5832e" alt=""><figcaption></figcaption></figure>

Exemple 1 : réaction à l’activation de l’abonnement à l’aide du bloc « Sans état avec condition » :

<figure><img src="/files/5e46effc3ff040b3992c09d496a1fa9fe207a270" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/fr/paiement/paypal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
