Dividir los pagos con tarjeta en los SDKs
Configurar y operar un pago con dos tarjetas a través de DEUNA Payment Widget o Elements en los SDKs compatibles.
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:
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#
Habilitar el comportamiento#
await DeunaSDK.initPaymentWidget({
orderToken,
behavior: {
paymentMethods: {
creditCard: {
splitPayments: {maxCards: 2},
},
},
},
callbacks,
});await deunaSDK.initPaymentWidget({
orderToken,
mode: 'modal',
behavior: {
paymentMethods: {
creditCard: {
splitPayments: {maxCards: 2},
},
},
},
callbacks,
});let behavior: Json = [
"paymentMethods": [
"creditCard": [
"splitPayments": ["maxCards": 2]
]
]
]
deunaSDK.initPaymentWidget(
orderToken: orderToken,
callbacks: callbacks,
behavior: behavior
)val behavior: Json = mapOf(
"paymentMethods" to mapOf(
"creditCard" to mapOf(
"splitPayments" to mapOf("maxCards" to 2)
)
)
)
deunaSDK.initPaymentWidget(
context = this,
orderToken = orderToken,
callbacks = callbacks,
behavior = behavior
)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ñal | Uso |
|---|---|
onCardBinDetected / onBinDetected | Detectar el BIN de la tarjeta activa sin recopilar datos de tarjeta. |
onInstallmentSelected | Asociar la opción de plan seleccionada con la tarjeta que se está configurando. |
paymentMethodSplitPayments | Evento del elemento nativo que indica la ruta de pago dividido. |
paymentProcessing / onPaymentProcessing | Bloquear acciones duplicadas mientras la operación combinada está en curso. |
purchase, purchaseError, purchaseRejected | Solo 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.
| Escenario | Comportamiento del comerciante |
|---|---|
| La primera tarjeta falla antes de que otra tenga éxito | Mantener el pedido abierto solo si el estado actual del pedido permite otro intento. |
| Una tarjeta tiene éxito y la otra falla | Reconciliar ambos intentos; no enviar un nuevo pago completo sin más. |
| El cliente cierra durante el proceso | Recuperar el pedido antes de restaurar las opciones de pago. |
| El cliente pierde la conexión | Considerar el resultado como desconocido hasta que la parte posterior responda. |
| Tocar o intentar de nuevo | Utilizar 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.