Intégration redirect
L'intégration redirect est un processus simple et sécurisé qui utilise la page de paiement du côté de la passerelle de paiement. Le principal avantage de cette méthode d'intégration est que vous n'avez pas besoin de collecter et traiter les données de carte sur votre site web. L'API est utilisée de manière minimale dans ce cas, donc cette méthode ne nécessite pas beaucoup d'expertise en développement.
Tout d'abord, vous devriez vous abonner aux webhooks suivants (voir Webhooks pour les détails) :
-
session.created- se produit quand une session est créée. -
session.completed- se produit quand une session a été complétée avec succès. -
session.expired- se produit quand une session est expirée.
Optionnellement, vous pouvez également vous abonner aux webhooks listés ci-dessous pour obtenir les détails de paiement via ces webhooks :
-
payment.created- se produit quand un paiement est créé. -
payment.failed- se produit quand une tentative de paiement échoue. -
payment.canceled- se produit quand un paiement est refusé. -
payment.amountCapturableUpdated- se produit quand les fonds pour un paiement en deux étapes sont bloqués avec succès. -
payment.funded- se produit quand les fonds pour un paiement en deux étapes sont capturés avec succès. -
payment.succeeded- se produit quand un paiement réussit (ceci fait référence à un paiement en une étape).
(requête "/sessions") activate PG PG -->> OS: id, paymentUrl, webhook "session.created"
OS -->> C: Rediriger vers l'URL de paiement C ->> PG: Saisir les données de carte PG -->> PG: Traiter le paiement PG -->> C: Rediriger vers l'URL de succès deactivate C PG -->> OS: webhook "session.completed"
deactivate OS deactivate PG
Un client sélectionne un produit dans la boutique en ligne, puis clique sur Acheter.
-
La boutique en ligne demande la création de session en envoyant une requête POST
/sessionsà la passerelle de paiement. La requête doit contenir les paramètres suivants :-
amount- le montant du paiement en unités mineures de devise. Par exemple, pour spécifier 100 $, utilisezamount=10000etcurrency=USD(10000 centimes). -
currency- code de la devise de paiement, selon ISO 4217. -
successUrl- l'adresse vers laquelle le client sera redirigé après un paiement réussi à l'Étape 7. -
failureUrl- l'adresse vers laquelle le client sera redirigé à l'Étape 7, si le paiement échoue.
Exemple de requête :
curl -X POST "https://dev.bpcbt.com/api2/sessions" \ -H "X-Api-Key: 6HUXQFbeomV1zf5i8cgm5W8KfncENVEa5uh8RngB" \ -H "X-Version: 2023-10-31" \ -H "Content-Type: application/json" \ -d '{ "amount": 10000, "currency": "EUR", "successUrl": "https://mybestmerchantreturnurl.com/success", "failureUrl": "https://mybestmerchantreturnurl.com/failure" }'POST -
-
La passerelle de paiement crée une session et envoie un webhook
session.createdet une réponse au serveur de la boutique en ligne. La réponse contient unid(l'identifiant unique de la session dans la passerelle de paiement) et unpaymentUrl(l'URL vers laquelle la boutique en ligne doit rediriger le client pour le paiement à l'Étape 4). Les autres champs envoyés dans la requête sont également retournés dans la réponse.Exemple de réponse :
{ "id": "ps_2GRSigkh7m3hqz5pMCAYCzJaXjsHgypQui6nMBss3XLVLF8gwDASHP", "amount": 10000, "created": "2024-03-28T08:26:37Z", "currency": "EUR", "customerDetails": {}, "expiresAt": "2024-03-28T08:46:37Z", "failureUrl": "https://mybestmerchantreturnurl.com/failure", "locale": "EN", "merchantReferenceId": "4000", "metadata": {}, "paymentData": { "captureMethod": "automatic" }, "paymentStatus": "unpaid", "paymentUrl": "https://dev.bpcbt.com/payment/merchants/ecom/payment.html?mdOrder=12a19f56-50e6-74bc-a289-c93d00a9c8eb&language=en", "status": "open", "successUrl": "https://mybestmerchantreturnurl.com/success" } La boutique en ligne redirige le client vers l'URL reçue dans le paramètre
paymentUrl. La redirection peut être effectuée dans la même fenêtre ou dans une nouvelle fenêtre.Le client saisit son numéro de carte, la date d'expiration, et CVV/CVC, et clique sur Payer.
La passerelle de paiement traite la demande de paiement.
-
Le client est redirigé vers la page de la boutique en ligne définie dans le paramètre
successUrl(spécifié à l'Étape 2). L'URL de redirection contiendra l'ID de la session, par exemple :https://mybestmerchantreturnurl.com/success?sessionId=ps_aksdhauedqiuwehdiqwbdq. La boutique en ligne attend le webhook
session.completedpour s'assurer que le paiement a réussi. Vous devriez toujours vérifier la signature du webhook dans l'en-têteX-Signature(voir Webhooks pour les détails).