Introduction
Le Contrôle des doublons dans Axepta Online est conçu pour détecter et gérer les tentatives de paiement en double sur plusieurs canaux (API, HPP, etc.). Elle garantit que les utilisateurs et les commerçants ne déclenchent pas accidentellement plusieurs paiements avec les mêmes paramètres, y compris les cas où un paiement est déjà en cours.
Objectifs du Contrôle de Duplication
Les paiements en double peuvent provenir de plusieurs causes :
- Erreurs d'interaction utilisateur (par exemple, rafraîchissement, double-clic)
- Problèmes de logique côté commerçant (par exemple, boucles de réessai)
- Latence du réseau ou délais d'attente entraînant une incertitude sur le statut du paiement
- Tentatives de paiement encore **en cours** lorsque une nouvelle demande est soumise
Configuration
- Profondeur de l'historique dans laquelle on vérifie qu'il y a un doublon : 1 heure à 4 jours
- Périmètre : 1 ou plusieurs MID
- Prise en compte des paiements "en cours" : oui/non
Fonctionnement
1. Vérification Précoce
Les vérifications de duplication sont déclenchées avant l'affichage de la page de paiement :
- Si une duplication est détectée, l'utilisateur est redirigé sur l'url Failure
- Aucun paiement n'est soumis si la demande correspond à une transaction existante ou en cours.
2. Mise en œuvre
Paiement réalisé via la Page de choix du moyen de paiement (HPP) ou le formulaire de paiement par carte (payssl)
Il est nécessaire d'ajouter au moins un des paramètres suivants dans l'appel à paymentpage.aspx ou payssl.aspx
- OrderID - ANS..30
- InvoiceID - ANS..30
Vérification de Duplication via API
L'API Axepta Online fournit un endpoint permettant aux commerçants de vérifier si une transaction est une duplication avant de la soumettre :
- Endpoint : `DuplicationCheck.aspx`
- Paramètre : `OrderID` ou `InvoiceID` (obligatoire), `Amount`, `Currency`.
- Période de Rétention** pour la vérification des transactions en double : configurable (par défaut : 4 jours)
- Suivi en cours**, les seuils de délai d'attente peuvent être configurés (30 minutes).
3. Format de Réponse
L'API retourne un statut indiquant si une transaction est une duplication :
Statut | Code | Description |
---|---|---|
OK | 00000000 | Aucune duplication détectée |
FAILED | 20001550 | Paiement déjà effectué |
FAILED | 20001551 | Paiement en attente |
FAILED | 20001552 | Plusieurs duplications détectées, critères supplémentaires requis |
Si une duplication est détectée, la réponse inclut également les détails de la transaction existante (PayID, TransactionID, Date, etc.).