Saltar al contenido principal
En esta página

Los pagos con dos tarjetas permiten a un cliente distribuir un solo pedido en múltiples tarjetas en una experiencia DEUNA compatible. Los ejemplos públicos actuales de SDK configuran dos tarjetas con behavior.paymentMethods.creditCard.splitPayments.maxCards.

Ver Split Payments en el checkout#

La siguiente demostración muestra a un cliente dividiendo un pedido en dos tarjetas en la experiencia de pago de DEUNA:

Split Payments permite al cliente distribuir el total del pedido entre las tarjetas compatibles. Vea la demostración directamente en YouTube si el reproductor integrado no está disponible.

Utilice la demostración para orientación visual. Su backend aún debe conciliar cada intento y verificar el estado general del pedido antes de su cumplimiento.

Flujo de pago#

Diagrama de flujo
1One merchant order2Card 1 amount andauthorization3Card 2 remainingamount andauthorization4-- Partial or failed5Verify final orderstate6Reconcile attemptsand show recovery
Comercio o clienteExcepción o detenciónResultado
01 · order
Crear un pedido
Mantener los totales y la moneda como autoritativos en el backend.
02 · widget
Habilitar dos tarjetas
Pase el comportamiento a la Widget o los Elementos de Pago.
03 · customer
Asignar y enviar
La experiencia valida los montos y procesa las tarjetas configuradas.
04 · backend
Reconciliar todos los intentos
Cumplir solo cuando el pedido completo alcance el estado final requerido.

Habilitar el comportamiento#

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

Web y React Native utilizan el objeto de comportamiento. iOS y Android aceptan la misma estructura pública en JSON. Mantener la ortografía y el anidamiento exactamente como se muestra.

Eventos y callbacks#

SeñalUso
onCardBinDetected / onBinDetectedDetectar el BIN de la tarjeta activa sin recopilar datos de tarjeta.
onInstallmentSelectedAsociar la opción de plan seleccionada con la tarjeta que se está configurando.
paymentMethodSplitPaymentsEvento del elemento nativo que indica la ruta de pago dividido.
paymentProcessing / onPaymentProcessingBloquear acciones duplicadas mientras la operación combinada está en curso.
purchase, purchaseError, purchaseRejectedSolo para el ciclo de vida del cliente; siempre reconciliar el pedido y sus intentos.

No reconstruir el resultado financiero sumando eventos del cliente. Utilizar el pedido y los registros de transacción del backend actuales.

Fallo y recuperación#

Los pagos divididos pueden crear un resultado operativo parcial: un intento puede alcanzar un estado diferente al de otro. Diseñar la ruta de recuperación antes de habilitar la función.

EscenarioComportamiento del comerciante
La primera tarjeta falla antes de que otra tenga éxitoMantener el pedido abierto solo si el estado actual del pedido permite otro intento.
Una tarjeta tiene éxito y la otra fallaReconciliar ambos intentos; no enviar un nuevo pago completo sin más.
El cliente cierra durante el procesoRecuperar el pedido antes de restaurar las opciones de pago.
El cliente pierde la conexiónConsiderar el resultado como desconocido hasta que la parte posterior responda.
Tocar o intentar de nuevoUtilizar los controles y la estrategia de idempotencia documentada.

Matriz de pruebas#

  • Dos tarjetas con asignación y precisión de moneda compatibles.
  • Instalaciones en una tarjeta elegible y sin instalaciones en una tarjeta no elegible.
  • Rechazo en la primera y segunda tarjeta por separado.
  • Cerrar la aplicación, refrescar o pérdida de red entre tarjetas.
  • Cierre del cliente después de ingresar una tarjeta.
  • Autorización lenta y múltiples intentos de confirmación.
  • Webhook final y estado de la API que coinciden con la pantalla de confirmación del cliente.