Préparez une page de notification


Pourquoi la notification

Le lien/url de notification (notify_url) est appelé par DV PASS pour vous notifier de l’état d’un paiement. Cette url doit être disponible pour accueillir des requêtes HTTP de type GET et POST et retourner le statut HTTP 200 OK. DV PASS ne postera aucune donnée par GET, le serveur ping votre url afin de s'assurer qu'elle est disponible


Le notify_url doit être le seul mécanisme à implémenter pour synchroniser automatiquement les paiements vers votre site marchand. DV PASS appellera ce lien après chaque update pour vous notifier du changement de statuts pendant le déroulement d'une transaction.


A la fin d’un paiement, DV PASS appelle systématiquement l’url de notification pour le service concerné. Cet appel a pour but d’informer le site marchand de l’état du paiement (même si le client ne revient pas sur le site). Le marchand pourra ainsi valider sa commande si le paiement est vérifié et accepté.


l’url de notification n’est pas nécessaire si vous n’avez pas besoin d’avoir le statut des paiements dans votre base de données, car vous avez l’historique de vos paiements dans votre backoffice DV PASS.

Ex : Application de collecte de dons

LES ETAPES POUR CONFIGURER L'URL DE NOTIFICATION

1-RECEVOIR UNE NOTIFICATION

Le serveur exécute une requête de type POST sur votre url de notification contenant :

  • cpm_trans_id la variable transaction_id que vous avez envoyé à l’initialisation
  • cpm_site_id la variable site_id que vous avez envoyé à l’initialisation
  • cpm_trans_date la date et heure de la transacation | ex: 2000-12-21 19:19:00|
  • cpm_amount le montant
  • cpm_currency la devise
  • signature
  • payment_method la methode de paiement
  • cel_phone_num le numero qui a servi a faire le paiement
  • cpm_phone_prefixe le prefixe du pays
  • cpm_language la langue utisé dans laquelle le paiement a été fait
  • cpm_version la version utilisé(V4)
  • cpm_payment_config le type de paiement(Single)
  • cpm_page_action le type d'action (Payment).

vous devrez recuperez principalement cpm_trans_id et cpm_site_id posté par DV PASS pour la suite de la configuration.

Pour vous assurer de l’intégrité des données que vous traitez, vous devez effectuer certaines vérifications :

  • Votre url de notification doit être une api qui attend un appel en POST et en paramètre le cpm_trans_id (Correspondant à la variable transaction_id)
  • Après l’avoir obtenu, vous devez vérifier dans votre base de données que le statut du paiement concerné est déjà à succès :
    • Si oui alors vous ne faites plus de mise à jour ;
    • Si non vous devez faire un appel à l’api de vérification de transaction pour obtenir le statut de la transaction chez DV PASS et mettre ainsi à jour le statut dans votre base de données.

2-VERIFIER L'ETAT DE LA TRANSACTION

Remarque

  • DV PASS ne vous enverra pas les informations sur le statut de la transaction pour éviter certaine faille de sécurité comme le man in the middle.
  • L’url de notification peut être appelée plusieurs fois.
  • Il faudra toujours effectuer un appel à l’API de « Vérification de transaction » de paiement pour avoir les vraies valeurs du paiement.


Pour connaître le statut d'une transaction, vous devez envoyer les informations suivantes au format JSON.
En utilisant cette url:https://api.epaycs.com/v2/payment/check

  • apikey : votre apikey
  • site_id : votre site_id
  • transaction_id : votre transaction_id ou token : Le payment_token obtenu lors de l’initialisation du paiement

pour plus de detail, veuillez consulter la section Vérification de transaction

3-DELIVRER UN SERVICE

Lorsque le paiement est succès , vous recevrez cette réponse de DV PASS:

 {
    "code": "00",
    "message": "SUCCES",
    "data": {
        "amount": "100",
        "currency": "XOF",
        "status": "ACCEPTED",
        "payment_method": "OM",
        "description": "GFGHHG",
        "metadata": null,
        "operator_id": "MP210930.1743.C36452",
        "payment_date": "2021-09-30 17:43:30"
    },
    "api_response_id": "1633023959.8459"
}

{primary.fa-info} Ensuite vous devrez délivrer le service. N'oubliez pas de mettre à jour votre base de donnée.

En cas d'échec , vous recevrez cette réponse de DV PASS:

 {
    "code": "600",
    "message": "PAYMENT_FAILED",
    "data": {
        "amount": "100",
        "currency": "XOF",
        "status": "REFUSED",
        "payment_method": "OM",
        "description": "GFGHHG",
        "metadata": null,
        "operator_id": null,
        "payment_date": " "
    },
    "api_response_id": "1633024200.1830"
}

{primary.fa-close} Aucun service ne devra être delivré. N'oubliez pas de mettre à jour votre base de donnée.

TESTER SON URL DE NOTIFICATION

{primary.fa-close} Aucune redirection ne doit être effectué sur l'url de notification elle doit servir seulement pour les traitements.

Après paiement, vous pouvez tester votre url de notification en utilisant une application de requête http. Pour l'exemple, nous utiliserons PostMan.

Disponible en GET

test-notification


1) Entrez votre url de notification

2) Selectionnez la methode GET, puis cliquez sur "Send"

3) Vous devrez recevoir Status 200 OK(Si cela n'est pas le cas, vous trouverez certainement la cause ici )


Disponible en POST

test-notification


1) Entrez votre url de notification

2) Sélectionnez la methode POST

3) Sélectionnez le content-type x-www-form-urlencoded

4) Renseignez cpm_trans_id et cpm_site_id avec leurs valeurs respectives, puis cliquer sur "Send"

5) Vous devrez recevoir Status :200 OK(Si cela n'est pas le cas, vous trouverez certainement la cause ici)

Erreur Status

Code Cause Solution
Status: 404 votre url n'a pas été trouvé Verifier que l'url saisi est correcte.
Status : 419 Cette erreur est dû au jeton crsf de laravel qui doit obligatoirement être envoyé pour chaque requête en POST. Désactiver la vérification de jeton en mentionnant le nom de votre route dans le fichier app/http/middleware/VerifyCsrfToken.php.