La machine d'état du paiement

Le diagramme suivant montre la machine d'état pour un paiement tel qu'il est utilisé par Contrôleur des plug-in de paiement. Il décrit comment un paiement se déplace d'un état à l'autre lorsque des transactions financières, des requêtes ou des modifications externes sont effectuées au niveau d'un paiement et comment les plug-ins de paiement sont utilisés pour traiter les transactions de paiement. L'état du paiement persiste dans la table PPCPAYMENT.

Le texte suivant le diagramme décrit l'illustration.

Lors d'une nouvelle création (Nouveau), deux transactions financières sont valables pour un paiement : approve ou approveAndDeposit.

Lorsque l'état d'un paiement est défini sur Approving, inverseApproval est une transaction financière possible. En cas de succès, le paiement passera à un état Canceled. L'état du paiement peut également passer à Approuvé par une mise à jour de requête ou par une opération de modification effectuée par le Contrôleur des plug-in de paiement. Ce type d'opération de modification est généralement associé à des protocoles de paiement hors ligne et à des situations de délai d'attente.

Dans un état Approuvé, un paiement peut être annulé par une valeur reverseApproval complète (le montant total approuvé est annulé), ou il peut expirer au cours d'une transaction de requête ou de dépôt. Avec les transactions de dépôts et reverseApproval partielles (le montant à annuler est inférieur au montant total approuvé), le paiement reste dans l'état Approuvé.

Lorsqu'une transaction financière échoue, l'état du paiement passe à Failed.

Les états de fin pour les paiements sont Failed, Canceled et Expired.