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
Le serveur exécute une requête de type POST sur votre url de notification contenant :
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 :
Remarque
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
pour plus de detail, veuillez consulter la section Vérification de transaction
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.
{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
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
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
)
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. |