Passer au contenu principal

Créer une Session de paiement

Ajoutez un point de terminaison sur votre serveur qui crée une session de paiement. Une session de paiement contrôle les informations que votre client peut voir sur la page de paiement, comme le montant de la commande et la devise, ainsi que les méthodes de paiement acceptées.
Le point de terminaison à utiliser est POST https://buy.api.yabetoopay.com/v1/sessions.
const response = await fetch("https://buy.api.yabetoopay.com/v1/sessions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer YOUR_SECRET_KEY",
  },
  body: JSON.stringify({
    total: 200000,
    currency: "xaf",
    accountId: "acct_xxxxxxxx",
  }),
});

const data = await response.json();

Définir un produit à vendre

Stockez toujours les informations sensibles sur votre inventaire de produits (comme le prix, la disponibilité, etc.) sur votre serveur pour empêcher tout client de les modifier. Définissez les détails de votre produit lors de la création de la session de paiement.
const items = [
  {
    productId: "prt_XoPjNH2l5Q1g19mIZPxqYWEXwRJzOmlNXhcb",
    quantity: 1,
    price: 200000,
    productName: "Écran LG",
  },
];
const response = await fetch("https://buy.api.yabetoopay.com/v1/sessions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer YOUR_SECRET_KEY",
  },
  body: JSON.stringify({
    items,
  }),
});

const data = await response.json();

Définir des métadonnées (optionnel)

Vous pouvez ajouter des métadonnées à votre session de paiement pour stocker des informations supplémentaires, comme l’ID de commande, l’ID client, etc.
metadata: {
  orderId: "1234",
  customerId: "5678",
},

Fournir les URLs de succès et d’annulation

Fournissez des URLs de succès et d’annulation pour rediriger votre client vers votre site web après le paiement. Ces URLs sont utilisées pour informer le client du statut de la transaction et pour effectuer des actions supplémentaires sur votre serveur, comme la mise à jour du statut de la commande.
const successUrl = "https://votre-site.com/checkout-success";
const cancelUrl = "https://votre-site.com/checkout-cancel";

Exemple complet

L’exemple suivant montre comment créer une session de paiement avec tous les paramètres requis.
const response = await fetch("https://buy.api.yabetoopay.com/v1/sessions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer YOUR_SECRET_KEY",
  },
  body: JSON.stringify({
    total: 200000,
    currency: "xaf",
    accountId: "acct_xxxxxxxx",
    successUrl: "https://votre-site.com/checkout-success",
    cancelUrl: "https://votre-site.com/checkout-cancel",
    metadata: { orderId: "1234" },
    items: [
      {
        productId: "prod_12345",
        quantity: 1,
        price: 200000,
        productName: "Écran HD",
      },
    ],
  }),
});

const data = await response.json();

Réponse

La réponse contient l’ID de session et d’autres détails.
{
  "accountId": "acct_iNXIGeot1lqyhGI5eP7KL0LcWTCTgFLytfRa",
  "successUrl": "https://votre-site.com/checkout-success",
  "cancelUrl": "https://votre-site.com/checkout-cancel",
  "orderId": "ord_KowaIWyMlD25Lhb8MyY3GQyvN8nFaxTZ7ji7",
  "expiresAt": "2024-05-28T13:33:51.760+00:00",
  "id": "session_ajrw3pQUUZD8UI2eFkWyUgLxJ4kGuXCoaQeb",
  "createdAt": "2024-05-28T12:33:51.762+00:00",
  "updatedAt": "2024-05-28T12:33:51.762+00:00"
}

Redirection vers la page de paiement

Une fois la session de paiement créée, redirigez votre client vers l’URL de la page de paiement hébergée. Cette URL est disponible dans la réponse de la session de paiement.

Redirection du client

Une fois le paiement effectué, le client est redirigé vers l’URL de succès ou d’annulation que vous avez spécifiée dans le champ successUrl ou cancelUrl. Notre système ajoutera l’ID de transaction à votre callback comme ceci : https://your_callback?paymentId={id}. Il est dans votre intérêt de vérifier la bonne réception du paiement en vérifiant le statut de la transaction dans notre système en suivant ce processus :
Sandbox : https://pay.sandbox.yabetoopay.com/v1/payment-intents/{paymentId}
Production : https://pay.api.yabetoopay.com/v1/payment-intents/{paymentId}
const paymentId = new URLSearchParams(window.location.search).get("paymentId");

const response = await fetch(`${url}/${paymentId}`, {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer YOUR_SECRET_KEY",
  },
});

const data = await response.json();

console.log(data);

Pourquoi effectuer une double vérification ?

  1. Sécurité : S’assure que le paiement a été réellement effectué et que vous ne traitez pas de fausses transactions.
  2. Confiance : En vérifiant formellement le statut du paiement via l’API, vous maintenez un enregistrement fiable des transactions réussies et échouées.
  3. Prévention de la fraude : En vérifiant le statut du paiement, vous réduisez le risque de fraude potentielle.
L’étape de redirection après le paiement est cruciale pour finaliser une transaction. En récupérant l’ID de paiement fourni dans l’URL et en effectuant une double vérification avec l’API Yabetoo, vous renforcez la sécurité de votre processus de commande et assurez que seuls les paiements confirmés sont traités. L’utilisation d’une page de paiement hébergée avec des sessions de paiement simplifie le processus d’intégration des paiements dans votre application. Elle vous permet de déléguer la gestion des données sensibles à Yabetoo, tout en offrant une expérience de paiement fluide et sécurisée à vos utilisateurs.
I