Aller au contenu principal
Sur cette page

La répartition des paiements par carte permet à un client de répartir une commande sur plusieurs cartes dans une expérience DEUNA prise en charge. Les exemples publics de SDK actuels configurent deux cartes avec behavior.paymentMethods.creditCard.splitPayments.maxCards.

Voir Split Payments dans le checkout#

La démo suivante montre un client répartissant une commande sur deux cartes dans l'expérience de paiement DEUNA :

Split Payments permet au client de répartir le total de la commande entre les cartes compatibles. Regardez la démo directement sur YouTube si le lecteur intégré n'est pas disponible.

Utilisez la démo pour une orientation visuelle. Votre backend doit toujours concilier chaque tentative et vérifier l’état global de la commande avant son exécution.

Flux de paiement#

Diagramme de flux
1One merchant order2Card 1 amount andauthorization3Card 2 remainingamount andauthorization4-- Partial or failed5Verify final orderstate6Reconcile attemptsand show recovery
Marchand ou clientException ou arrêtRésultat
01 · order
Créer une commande
Maintenir les totaux et la devise en tant que données autoritaires côté serveur.
02 · widget
Activer deux cartes
Transmettre le comportement de répartition au widget ou aux éléments de paiement.
03 · customer
Allouer et soumettre
L'expérience valide les montants et traite les cartes configurées.
04 · backend
Reconcilier toutes les tentatives
Valider uniquement lorsque la commande atteint l'état final requis.

Activer le comportement#

await DeunaSDK.initPaymentWidget({
  orderToken,
  behavior: {
    paymentMethods: {
      creditCard: {
        splitPayments: {maxCards: 2},
      },
    },
  },
  callbacks,
});

Web et React Native utilisent l'objet de comportement. iOS et Android acceptent la même forme publique au format JSON. Conserver l'orthographe et le niveau de nidification exactement tels qu'ils sont affichés.

Événements et callbacks#

SignalUtilisation
onCardBinDetected / onBinDetectedDétecter le BIN de la carte active sans collecter les données de carte brutes.
onInstallmentSelectedAssocier l'option de plan sélectionnée à la carte actuellement configurée.
paymentMethodSplitPaymentsÉvénement natif pour les éléments indiquant le chemin de paiement divisé.
paymentProcessing / onPaymentProcessingEmpêcher les actions dupliquées pendant que l'opération combinée est en cours.
purchase, purchaseError, purchaseRejectedUniquement pour le cycle de vie du client ; concilier toujours la commande et ses tentatives.

Ne reconstruire pas le résultat financier en additionnant les événements du client. Utilisez les enregistrements de commande et de transaction de backend actuels.

Gestion des erreurs et récupération#

Les paiements partiels peuvent entraîner un état opérationnel partiel : une tentative peut atteindre un état différent d'une autre. Concevez le chemin de récupération avant d'activer cette fonctionnalité.

ScénarioComportement du commerçant
La première carte échoue avant que la seconde ne réussisseConservez la commande ouverte uniquement si l'état actuel de la commande permet une autre tentative.
Une carte réussit et l'autre échoueReconciliez les deux tentatives ; ne soumettez pas un nouveau paiement complet sans vérification.
Le client quitte pendant le processusRécupérez la commande avant de restaurer les options de paiement.
Le client perd la connexionTraitez le résultat comme inconnu jusqu'à ce que le backend réponde.
Double tap ou tentativeRéutilisez vos contrôles opérationnels et votre stratégie d'empotement documentée.

Matrice de test#

  • Deux cartes avec une allocation identique et une précision de devise prise en charge.
  • Installments sur une carte éligible et pas d'installments sur une carte non éligible.
  • Refus sur la première et la deuxième carte séparément.
  • Arrière-plan de l'application, rafraîchissement ou perte de réseau entre les cartes.
  • Le client quitte après avoir entré une carte.
  • Autorisation lente et soumissions répétées.
  • WebHook final et état de l'API correspondant à l'écran de confirmation du client.