Payin avec redirection

Payin avec redirection

Le payin avec redirection est une méthode de paiement de l'API LigdiCash qui permet à un marchand de collecter des paiements sur son site web ou son application mobile.

Cette méthode de paiement est idéale pour les marchands qui souhaitent offrir une expérience de paiement fluide à leurs clients, sans avoir à gérer l'implémentation technique de tous les moyens de paiement disponibles pour son contrat.

Fonctionnement

Fonctionnement du Payin avec redirection

Mise en place

⚠️

Pour générer un lien de paiement avec redirection, vous devez disposer d'un projet API activé. Suivez le guide pour créer un projet API.

Envoyer la facture

POSThttps://app.ligdicash.com/pay/v01/redirect/checkout-invoice/create
Headers
Apikey
Obligatoire
stringCorrespond au API Key de votre projet API
Authorization
Obligatoire
Bearer + API TOKENCorrespond au API TOKEN de votre projet API, précédé du mot Bearer
Accept
Obligatoire
application/jsonType de contenu accepté dans la réponse. Doit toujours être application/json
Content-Type
Obligatoire
application/jsonType de contenu de la requête. Doit toujours être application/json
Body
Commande
Obligatoire
objetDétails de la commande
invoice
Obligatoire
objetDéfinit les détails de la facture
items
Obligatoire
arrayListe des articles de la facture
name
Obligatoire
stringNom de l'article
description
Obligatoire
stringDescription de l'article
quantity
Obligatoire
integerQuantité de l'article
unit_price
Obligatoire
integerPrix unitaire de l'article
total_price
Obligatoire
integerPrix total de l'article
total_amount
Obligatoire
integerMontant total de la facture
devise
Obligatoire
XOFDevise de la facture. Doit toujours être XOF
description
Obligatoire
stringDescription de la facture
customer
Obligatoire
stringIdentifiant du client. Ce champ doit être vide
customer_firstname
Obligatoire
string (optional)Prénom du client
customer_lastname
Obligatoire
string (optional)Nom du client
customer_email
Obligatoire
string (optional)Email du client
external_id
Obligatoire
stringCe champ doit être vide
otp
Obligatoire
stringCe champ doit être vide
store
Obligatoire
objetDéfinit les détails du magasin
name
Obligatoire
stringNom du magasin
website_url
Obligatoire
stringURL du site web du magasin
actions
Obligatoire
application/jsonDéfinit les actions à effectuer après le paiement
cancel_url
Obligatoire
stringURL de redirection en cas d'annulation du paiement
return_url
Obligatoire
stringURL de redirection après le succès du paiement
callback_url
Obligatoire
stringURL d'un endpoint de votre backend qui recevra les détails de la transaction par requête POST
custom_data
Obligatoire
objectDéfinit les données personnalisées à associer à la transaction
transaction_id
stringcustom_data spécial correspondant à un identifiant unique généré par votre système pour la transaction
1curl --location 'https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/create' \
2--header 'Apikey: 81J...DH8C' \
3--header 'Authorization: Bearer eyJ0eXAiO...4LyaRolhw' \
4--header 'Accept: application/json' \
5--header 'Content-Type: application/json' \
6--data-raw '{
7    "commande": {
8        "invoice": {
9            "items": [
10                {
11                    "name": "Premier produit",
12                    "description": "__description_du_produit__",
13                    "quantity": 1,
14                    "unit_price": 1000,
15                    "total_price": 1000
16                },
17                {
18                    "name": "Deuxieme produit",
19                    "description": "__description_du_produit__",
20                    "quantity": 3,
21                    "unit_price": 5000,
22                    "total_price": 5000
23                }
24            ],
25            "total_amount": 16000,
26            "devise": "XOF",
27            "description": "Achat de produits sur https://masuperboutique.com",
28            "customer": "",
29            "customer_firstname": "Cheik",
30            "customer_lastname": "Cissé",
31            "customer_email": "cheikcisse@gmail.com",
32            "external_id": "",
33            "otp": ""
34        },
35        "store": {
36            "name": "Ma boutique",
37            "website_url": "https://masuperboutique.com"
38        },
39        "actions": {
40            "cancel_url": "https://masuperboutique.com/success",
41            "return_url": "https://masuperboutique.com/cancel",
42            "callback_url": "https://backend.masuperboutique.com/callback"
43        },
44        "custom_data": {
45            "order_id": "ORD-1234567890",
46            "transaction_id": "ORD-1234567890"
47        }
48    }
49}'

Nous vous recommandons fortement d'implémenter le endpoint de callback pour recevoir les détails de la transaction après le paiement.
Cela vous permettra de mettre à jour le statut de la commande dans votre système et d'offrir le service ou le produit à votre client sans qu'il ne soit obligé de revenir sur votre site.

Récupérer et rédiriger sur le lien de paiement

Le lien de paiement est retourné dans la réponse de la requête d'envoi de facture.
Si le champ response_code est égal à 00, cela signifie que la requête a été traitée avec succès et que le lien de paiement est disponible dans le champ response_text.
Vous pouvez alors rediriger votre client vers ce lien pour qu'il puisse effectuer le paiement.

Réponsehttps://app.ligdicash.com/pay/v01/redirect/checkout-invoice/create
response_code
Obligatoire
OO ou 01Code de réponse de la requête. 00 pour une requête réussie 01 pour une requête incorrecte (La valeur de "response_text" contient le code d'erreur)
response_text
Obligatoire
stringSi le code de réponse est 01, ce champ contient le message d'erreur Si le code de réponse est 00, ce champ contient l'URL de redirection vers la page de paiement
token
Obligatoire
stringIdentifiant unique de la transaction Ce token est à conserver pour vérifier le statut de la transaction
description
Obligatoire
stringDescription de la réponse
custom_data
Obligatoire
objetObjet contenant les données personnalisées que vous avez envoyées dans la requête
wiki
Obligatoire
stringURL documentant les codes d'erreur
1{
2    "response_code": "00",
3    "token": "eyJ0eXAiOiJKV1QiLCJh...GlyeV9kYXRlIjoxNzE2Mzc2NTE3fQ.7iwLZVmG_Hw_ncFUcF5Hzk8cB2BSUqroF9rGqym_qSw",
4    "response_text": "https://client.ligdicash.com/directpayment/invoice/eyJ0eXAiOiJKV1QiL...SUqroF9rGqym_qSw",
5    "description": "",
6    "custom_data": {
7        "logfile": "20240521131517664c9e65689a3"
8    },
9    "wiki": "https://client.ligdicash.com/wiki/createInvoice"
10}
11

Vérifier le statut de la transaction

Une fois que le client a effectué le paiement, il sera redirigé vers la page de retour (return_url ou cancel_url) que vous avez définie lors de la génération du lien de paiement.

Vous devrez alors vérifier le statut de la transaction pour confirmer réellement le statut du paiement.

Pour vérifier le statut de la transaction, vous devez utiliser le token retourné lors de la création de la facture, et effectuer la requête suivante:

GEThttps://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm/?invoiceToken={token_de_la_transaction}
Headers
Apikey
Obligatoire
stringCorrespond au API Key de votre projet API
Authorization
Obligatoire
Bearer + API TOKENCorrespond au API TOKEN de votre projet API, précédé du mot Bearer
Accept
Obligatoire
application/jsonType de contenu accepté dans la réponse. Doit toujours être application/json
Content-Type
Obligatoire
application/jsonType de contenu de la requête. Doit toujours être application/json
Paramètres Query
invoiceToken
Obligatoire
stringIl s'agit du token de la transaction que vous avez reçu lors de la création de la facture
1curl --location 'https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm/?invoiceToken=eyJ0eXAiOiJK...nk159cWyokRv6wAlh3g' \
2--header 'Apikey: 81J...IDH8C' \
3--header 'Authorization: Bearer eyJ0eXAiOiJ...4LyaRolhw' \
4--data ''

Interpréter la réponse

Lorsque vous recevez la réponse de la requête de vérification du statut de la transaction, vous devez vous assurez que response_code == 00 et que status == completed avant de valider la transaction et de livrer le service ou le produit à votre client.

Réponsehttps://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm/?invoiceToken={token_de_la_transaction}
response_code
Obligatoire
OO ou 01Code de réponse de la requête. 00 pour une requête réussie 01 pour une requête incorrecte (La valeur de "response_text" contient le code d'erreur)
token
Obligatoire
stringIdentifiant unique de la transaction Sera vide dans la réponse, car il est déjà dans l'URL de la requête
response_text
Obligatoire
stringSi le code de réponse est 01, ce champ contient le message d'erreur Si le code de réponse est 00, ce champ contient l'URL de redirection vers la page de paiement
date
Obligatoire
stringDate de la transaction
description
Obligatoire
stringDescription de la réponse
status
Obligatoire
completed, pending, nocompletedStatut de la transaction
custom_data
Obligatoire
array d'objetTableau contenant les données personnalisées que vous avez envoyées dans la requête
item
objetReprésente un élément de données personnalisées
id_invoice
stringIdentifiant de la facture
keyof_customdata
stringClé de la donnée personnalisée
valueof_customdata
stringValeur de la donnée personnalisée
montant
Obligatoire
integerMontant de la transaction
amount
Obligatoire
integerMontant de la transaction
operator_id
Obligatoire
stringIdentifiant de l'opérateur
operator_name
Obligatoire
stringNom de l'opérateur
customer
Obligatoire
stringNuméro de téléphone utilisé pour la transaction
external_id
Obligatoire
stringIdentifiant externe de la transaction
request_id
Obligatoire
stringIdentifiant de la requête
wiki
Obligatoire
stringURL documentant les codes d'erreur
1{
2    "date": "2023-10-29 09:46:27+00",
3    "response_code": "00",
4    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUz...bdqRzL_aOJ1SYzY", 
5    "description": "”,
6    "amount": "100", 
7    "montant": "100", 
8    "response_text": null,
9    "status": "completed",
10    "custom_data": [ 
11        {
12            "id_invoice": 29505444, 
13            "keyof_customdata": "order_id", 
14            "valueof_customdata": "MonSiteOrder234"
15        }
16    ],
17    "operator_name": "ORANGE BURKINA",
18    "operator_id": "11",
19    "customer": “”,
20    "transaction_id": “TRNS.36887,
21    "external_id": null,
22}
23
;