Symptôme
Vous avez envoyé sendAbortRequest() pour annuler un paiement, mais la transaction s'est quand même terminée — l'abandon semblait ne rien faire. Le client a quand même été débité.
Cause
L'abandon peut uniquement annuler un paiement qui est encore en cours, avant l'autorisation de l'hôte. Une fois que la transaction a été autorisée par l'hôte, il n'y a plus rien à annuler — le paiement a effectivement eu lieu. Un abandon envoyé après ce point est trop tardif et n'a aucun effet sur le résultat.
C'est volontaire : l'abandon interrompt une opération en cours ; ce n'est pas un moyen d'annuler une opération terminée.
Correction
Choisissez l'outil approprié selon l'état du cycle de vie de la transaction :
-
Avant l'autorisation —
sendAbortRequest()annule le paiement en cours. C'est la fenêtre valide pour l'abandon. -
Après l'autorisation (terminé) — l'abandon ne s'applique plus. Pour annuler un paiement terminé, envoyez une annulation contre le
POITransactionIDoriginal. Voir Guide : annuler une transaction.
Si vous avez un minuteur d'abandon ou une annulation déclenchée par l'utilisateur, attendez-vous à ce que les abandons déclenchés tard dans le processus n'aient légitimement aucun effet — la transaction avait déjà dépassé le point d'autorisation. Gérez ce cas en vérifiant le résultat de la transaction et en annulant si elle est terminée.
Vérification
Après un abandon qui pourrait avoir été tardif, confirmez ce qui s'est réellement passé :
- Si la réponse de paiement indique que la transaction est terminée, elle a été autorisée avant que votre abandon ne soit pris en compte — annulez-la si vous devez la défaire.
- Une demande de statut peut récupérer le résultat (et le
POITransactionIDdont vous auriez besoin pour l'annulation) si vous ne l'avez pas capturé. Voir Guide : vérifier le statut de la transaction.
Articles liés
- Guide : effectuer un paiement — la fenêtre d'abandon dans le flux de paiement.
- Guide : annuler une transaction — annuler un paiement déjà terminé.
- Guide : vérifier le statut de la transaction — récupérer le résultat et l'ID POI.