Gestion des exceptions plug-in et annulation des transactions

Si une transaction de paiement échoue et que cette défaillance entraîne une annulation des transactions HCL Commerce, les données de transaction de paiement ne se trouvent pas dans la base de données HCL Commerce.

Lorsque la transaction est annulée, vous pouvez prendre deux actions. Le paramètre transactionCompensionAction dans PaymentMethodConfigurations.xml détermine l'action :
<PaymentMethodConfiguration 
                 name="CreditCardOnline"
                 paymentSystemName="Paymentech" 
                 systemEditable="true"
                 humanEditable="true"
                 refundAllowed="true"
                 minimumAmount="0"
                 maximumAmount="Unbounded"
                 priority="MEDIUM"
                 partiallyConsumable="true"
                 transactionCompensationAction="track"/>
reverse
Valeur par défaut. Annulez la transaction de paiement réussie.
suivi
Suivez la transaction de paiement réussie. Ecrivez dans la base de données une fois la transaction annulée.

Considérons les deux scénarios suivants :

transactionCompensationAction défini pour procéder à une annulation

Un client règle une commande à l'aide d'une carte-cadeau et d'une carte Visa. La carte-cadeau a une priorité plus élevée que la carte Visa.

  • La commande a été soumise.
  • Tout d'abord, l'utilisation de la carte-cadeau est appelée avec succès. La carte-cadeau est utilisée par le prestataire de services tiers.
  • Ensuite, la validation de la carte Visa est appelée et échoue.
  • Cet échec entraîne l'annulation de la transaction HCL Commerce.

    Aucune information des deux transactions de paiement ne persiste dans la base de données HCL Commerce.

  • La commande UndopaymentActionsCmd annule l'action de paiement qui a été exécutée avec succès.

L'utilisation d'une carte-cadeau a été exécutée avec succès et le prestataire de services de paiement tiers a suivi cette transaction. Cependant, HCL Commerce ne dispose pas d'informations concernant cette transaction, car elle a été annulée. UndoPaymentActionsCmd exécute les transactions de paiement ou de crédit compensatoires pour les exécutions réussies des transactions lors de l'annulation générale des transactions HCL Commerce.

La classe d'implémentation correspondante exécute la transaction reverseApproval pour une transaction d'autorisation réussie. Pour les autres types de transactions, un rappel est créé. Avec les rappels créés, le représentant du service clientèle peut traiter manuellement les transactions annulées pour tous les types de transactions, y compris la transaction d'autorisation en cas d'échec de reverseApproval.

Points d'extension UndoPaymentActionsCmd :

  • handleUndoPaymentActionForApproval()
  • handleUndoPaymentActionForApproveAndDeposit()
  • handleUndoPaymentActionForCredit()
  • handleUndoPaymentActionForDeposit()
  • handleUndoPaymentActionForReverseApproval()
  • handleUndoPaymentActionForRerverseCredit()
  • handlUndoPaymentActionForReverseDeposit()

transactionCompensationAction défini pour procéder à un suivi

Un client règle une commande à l'aide d'une carte MasterCard et d'une carte VISA. La carte VISA a une priorité plus élevée que la Carte MasterCard.

  • La commande a été soumise.
  • Tout d'abord, la validation de la carte VISA est appelée avec succès.
  • Ensuite, la validation de la carte MasterCard échoue.

    Cet échec entraîne l'annulation de la transaction HCL Commerce.

    Aucune information provenant des deux transactions de paiement n'est conservée dans la base de données HCL Commerce.
  • La commande TrackPaymentActionsCmd suit les données de paiement associées pour la transaction de paiement qui a été effectuée avec succès dans la transaction. Les informations sont réécrites dans la base de données.

La validation de la carte VISA a réussi. Le prestataire de services de paiement a suivi cette transaction. Toutefois, HCL Commerce ne dispose pas d'informations concernant cette transaction, puis que la transaction est annulée. Parfois, il est nécessaire que les données de paiement pour les transactions réussies soient enregistrées dans la base de données HCL Commerce. Les données de la base de données HCL Commerce sont compatibles avec les données du prestataire de services de paiement. Les actions réussies n'ont pas besoin de se réexécuter. TrackPaymentActionsCmd récupère toutes les données de paiement associées pour les transactions de paiement réussies lorsque la transaction HCL Commerce globale est annulée. La commande restaure également les données dans la base de données lorsque la transaction globale est annulée.

Par défaut, une implémentation globale n'est pas fournie dans la classe d'implémentation, TrackPaymentActionsCmdImple. La classe d'implémentation fournit la récupération de données de paiement de base et l'implémentation logique de restauration. Par exemple, les données sont restaurées dans ces tables : EDPPAYINST, PPCPAYINST, EDPATMPAY, PPCPAYMENT, PPCPAYTRAN.

Points d'extension TrackPaymentActionsCmd :
  • retrieverPaymentData()
  • restorePaymentData()