Comment traiter les messages de notification instantanée de paiement (IPN)

Remarque

IPN est un service de messagerie qui vous envoie une notification lorsqu'un type de transaction se produit sur votre compte. Les messages sont reçus et traités par votre ou vos serveurs.

Présentation du processus

Pour recevoir et traiter les messages de notification instantanée de paiement (IPN) :

  • Créez un écouteur IPN pour recevoir et traiter les messages IPN envoyés par CicaPay. Pour plus de détails sur la création d'un écouteur IPN, voir dessous.
  • Dans les paramètres de votre compte marchand CicaPay, activez le service de messagerie IPN en spécifiant l'URL de votre écouteur.
  • Exécutez en continu l'écouteur IPN sur le site Web spécifié par l'URL de votre écouteur.
Pour recevoir et traiter les messages IPN :
  • Créez un écouteur qui :
    • Reçoit un message IPN envoyé par CicaPay
    • Vérifie qu'il s'agit d'un message IPN valide à l'aide de l' ipn_secure
    • Traite les données du message IPN selon vos besoins
    Pour créer un écouteur de base qui renvoie les messages IPN dans une fenêtre de navigateur :
    • Capturez les messages IPN que CicaPay envoie à votre écouteur
    • Vérifie qu'il s'agit d'un message IPN valide à l'aide de l' ipn_secure
    • Traite les données du message IPN selon vos besoins
    • Après avoir reçu un message IPN de CicaPay, vous devez comparer l' ipn_secure avec celui qui vous à été envoyé lors de la création de la transaction pour authentification  :

      <?php
                                                                                  
      // STEP 1: read POST data
                                                                                  // Reading POSTed data directly from $_POST causes serialization issues with array data in the POST.
                                                                                  // Instead, read raw POST data from the input stream.
                                                                                  
      $notif_data json_decode(file_get_contents("php://input"));
                                                                                  
                                                                                  
                                                                                  
      // 👇 echo data to browser or process it
                                                                                  
      echo "tx_type" " = " $notif_data->tx_type "<br />";
                                                                                  echo 
      "status" " = " $notif_data->status "<br />";
                                                                                  echo 
      "transaction id" " = " $notif_data->tx_id "<br />";
                                                                                  echo 
      "amount left to pay" " = " $notif_data->amount "<br />";
                                                                                  echo 
      "ipn secure" " = " $notif_data->ipn_secure "<br />";
  • Connectez-vous à votre compte CicaPay et indiquez l'URL de notification à votre écouteur IPN.
    Par exemple, le serveur Web sur lequel vous hébergez un écouteur PHP peut ressembler à l'URL suivante :

    https://example.com/ipnListener/ipn-Listener.php

  • Exécutez votre écouteur sur un serveur qui héberge l'URL que vous avez spécifiée comme URL de notification à l'étape 2.

    Votre écouteur doit toujours être accessible sur le site Web spécifié. CicaPay peut envoyer des notifications à tout moment de la journée.

Apprendre encore plus

CicaPay envoie des messages IPN pour chaque type de transaction ou mise à jour du statut de la transaction (y compris les notifications de paiement), et chaque type de notification contient un ensemble unique de champs. Vous devez configurer votre écouteur pour gérer les champs de chaque type de message IPN que vous pourriez recevoir, selon les types de transactions CicaPay que vous prenez en charge. Pour un guide complet sur les différents types de messages IPN et les champs de données associés à chaque type, consultez l'élément ci-dessous.

IPN pour Paiement Entrant Crypto

Il prend en compte les transactions éffectués via les API :
Paiement par Défaut "payWith" = "crypto",
Paiement Pro Crypto ,

Le message IPN envoyé ici contient :

  • tx_type ,

    Le type de transaction "crypto"

  • status ,

    Le status de la transaction

  • tx_id ,

    L'ID de la transaction

  • amount ,

    Le montant inpayé (reste à payer : le client à envoyer les fonds sur l'adresse mais le montant envoyé est inférieur au montant de la facture, il doit envoyé le montant manquant sur la même adresse avant la fin du timeout )

    Ce champ est vide si la facture à été totalement payé avec succès ou si la transaction à été annulé

  • ipn_secure

    Il s'agit d'un code secret généré par CicaPay pour vous permettre d'authentifier l'IPN reçu. Il va faloir le comparé à celui reçu lors de la création de la transaction.
    Si les 2 sont identiques, vous pouvez utiliser les données reçu de l'IPN.

IPN pour Paiement Entrant Fiat

Il prend en compte les transactions éffectués via les API :
Paiement par Défaut "payWith" = "fiat",
Paiement Pro ,

Le message IPN envoyé ici contient :

  • tx_type ,

    Le type de transaction "fiat"

  • status ,

    Le status de la transaction

  • tx_id ,

    L'ID de la transaction

  • ipn_secure

    Il s'agit d'un code secret généré par CicaPay pour vous permettre d'authentifier l'IPN reçu. Il va faloir le comparé à celui reçu lors de la création de la transaction.
    Si les 2 sont identiques, vous pouvez utiliser les données reçu de l'IPN.

Tenez compte des processus suivants dans votre gestionnaire de notifications pour diriger correctement les notifications et vous protéger contre la fraude :
  • Utilisez la valeur de tx_id, l'ID de transaction pour vous assurer que vous n'avez pas déjà traité la notification.
  • Confirmez le statut de la transaction et prenez les mesures appropriées en fonction de la valeur. Par exemple, les options de réponse de paiement incluent WAITING FOR CONFIRMATION, NOT CONFIRMED et CONFIRMED. Ne donnez pas accès au produit/service tant que la transaction n'est pas terminée !
  • Utilisez la valeur de tx_type, pour bien définir quel type de transaction vous traiter

Toujours coincé ?Comment pouvons nous aider ?

Est-ce que cela a été utile ?
logo-img