Cómo recuperar callbacks de pagos en stablecoins sin duplicar abonos
Si el cliente ya transfirió, pero su saldo no cambió, revisa por separado la transacción en cadena, la orden de la pasarela y el abono en tu sistema. Una URL inaccesible, una firma rechazada o un tiempo de espera agotado pueden interrumpir la notificación.
Identifica la etapa que falló
Consulta primero la orden. Después verifica la URL pública, el certificado HTTPS, el proxy y los registros del receptor. Distingue entre solicitudes no recibidas, firmas inválidas, errores de negocio y respuestas perdidas. Guarda identificadores, horarios y resultados sin registrar secretos.
Valida el cuerpo original
UUGate utiliza callbackSecret para los callbacks; su función es distinta de la API Key del comercio. Conserva el cuerpo original y verifica la marca de tiempo, el nonce y la firma según la documentación. No reformatees el JSON antes de verificarlo ni desactives la validación para procesar avisos pendientes.
Abona una sola vez
Define una restricción única con la identidad del comercio y el número de orden de la pasarela. Actualiza la orden y el saldo dentro de la misma transacción de base de datos. Consultar primero y abonar después, sin protección transaccional, no evita carreras entre callbacks simultáneos.
Una dirección puede recibir varias recargas: no sirve como clave única de deduplicación. Los callbacks y la recuperación por consulta deben compartir la misma lógica de abono.
Confirma después de persistir
Si el procesamiento es corto, responde con éxito después de confirmar la transacción. Si es asíncrono, verifica y guarda el evento en una cola persistente antes de responder. Supervisa errores y retrasos de consumo. Confirmar un evento que solo existe en memoria puede perderlo tras un reinicio.
Recupera órdenes pendientes
Al restablecer el servicio, consulta las órdenes incompletas y aplica las mismas validaciones de comercio, orden, activo, red e importe, junto con el control idempotente. No abones solo porque el navegador o una captura del cliente muestre éxito.
Prueba avisos duplicados y simultáneos, respuestas perdidas después del abono, reinicios y recuperación por consulta. Revisa los campos y estados en la documentación de API, la solución de integración y los límites de los planes.