API Create a payment request - envoi simultanée de 2 / 3 email de demande de paiement

Bonjour La communauté,

En déclenchant UNE SEULE FOIS la requête brevo adresse plusieurs emails de demande de paiement simultané au client. J’ai deux modèles de courriel différents. J’ai loupé quelque chose dans mon code ? A tr-è-s V–i—t-----e

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.brevo.com/v3/payments/requests",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'cart' => [
        'currency' => 'EUR',
        'specificAmount' => 1200
    ],
    'notification' => [
        'channel' => 'email',
        'text' => 'Valeur en votre aimable règlement'
    ],
    'configuration' => [
        'customSuccessUrl' => 'https://www.xxx.com/my-account.php?paiement=success&ticket=10&amount=12'
    ],
    'reference' => 'Achat d\'un carnet de 10 tickets',

    'contactId' => 76033
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "api-key: MY HAPPY KEY",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Bonjour @Phil56 , merci pour votre post.

Vous n’envoyez qu’une seule fois la requête, mais cela crée plusieurs demandes de paiement, c’est bien cela ?

Bonsoir Alexandre, Oui C’est bien cela. Je vous joint une capture d’écran

Voici la capture d’écran de ma boite de réception de courriel. Je l’ai anonymisé :wink:

C’est étrange en effet. Laissez moi regarder de mon côté

Une solution - en mettant les mains sous le capot - est de supprimer la notification
:
'notification' => [ 'channel' => 'email', 'text' => 'Valeur en votre aimable règlement' ],

et d’insérer, toujours avec l’api, dans son propre template, le lien vers le paiement. C’est un peu lourd, mais l’énorme avantage, en plus d’un envoi unique (!), est d’avoir un courriel de demande de paiement plus en accord avec la marque.

Philippe, de ce que je vois vous avez créé plusieurs demandes de paiement avec le même nom. Est-ce que vous pourriez tester l’API en créant des noms différents, avec d’être certain de pouvoir différencier les emails reçus ?

Ok je vous fais ca A tout de suite

Bonjour Alexandre
Voilà c’est fait :
J’ai supprimé tous les autres et éditer un nouveau. C’est plus clair
nom du lien : ESSAI 2 Achat d’un carnet de 10 tickets
Dans ma boite mail, j’ai la réception de deux courriels avec , malheureusement, le pixel de suivi est édité. Avec ça je suis certains que mes clients hésiteront à cliquer sur le lien. Ce problème de pixel semble récurrent mais n’est pas le sujet du jour :wink:

ci-joint la copie d’écran

ps : la piste à suivre → les modèles de courriels sont différents :wink:

Pour information :

Il manque la dernière accolade dans l’exemple de json à la page Payment webhooks

json corrigé :

{ "id": 739816, "event_name": "payment_done", "date": "2023-03-09T14:06:58.005Z", "type": "payment_link", "name": "Test release 09/03", "url": "https://pay.brevo.com/377a9c15-d063-49f2-bb72-2b5567b735da", "total_amount": { "currency": "EUR", "amount": 12 }, "products": [ { "name": "Article 1", "quantity": 1, "unit_prices": { "currency": "EUR", "price_before_tax": 0.83, "tax_rate": 20, "price_including_tax": 1 } } ], "buyer_information": { "email": "alexandre.hudavert@gmail.com", "billing_information": { "name": "Alexandre Hudavert", "street": "Rue Louis Blanc", "number": "61", "zip_code": "75010", "city": "Paris", "country": "France" }, "shipping_information": { "name": "Hudavert", "street": "Rue de Madrid", "number": "7", "zip_code": "75008", "city": "Paris", "country": "France" } } }

1 Like

Bonjour,

De ce que je comprends de l’EndPoint « Create a Payment Request », et du résultat que cela donne sur votre test, la notification est effectivement un paramètre optionnel permettant l’envoi d’un rappel à votre client pour le lien de paiement.
Ce rappel semble décorrélé de l’envoi de demande de paiement qui est faite automatiquement et semble se faire systématiquement par mail si je comprends bien (on distingue bien, dans vos screenshots, le mail de demande de paiement envoyé automatiquement et ne contenant pas de texte, du mail de notification contenant le texte paramétré dans votre code).

Je suppose donc qu’il n’a pas vocation a être envoyé par le même canal que la demande de paiement, mais plutôt par SMS par exemple pour rajouter du « crédit » à la demande de paiement reçue par mail, qui peut parfois être envisagée avec méfiance par le client.

Ce ne sont que des suppositions de ma part, car il manque effectivement un peu de détails sur le EndPoint.

Bonne journée

Tout à fait !

Pas exactement : lorsque vous créez une demande de paiement par API, on vous renvoie l’URL de la page de paiement correspondante, mais elle n’est pas envoyée systématiquement. Si vous renseignez le champ notification, alors nous envoyons un email, sinon non.

Est-ce que cela vous éclaire ?

Merci pour votre retour, je n’avais effectivement pas regardé le retour du EndPoint, et je pensais que celui-ci faisait l’envoi du mail directement.

Il est donc en effet bizarre que la notification envoi deux fois l’email, une fois sans le texte et l’autre fois avec (et je comprends mieux la remarque du PS de Phil56 suite à sa capture d’écran…).

Mon intervention n’était donc pas bien pertinente :sweat_smile:

1 Like