Cómo integrar cobros USDT: pedidos, firmas y notificaciones
Una integración USDT debe vincular cada pedido con un pago verificable. UUGate admite TRC20-USDT y BEP20-USDT. La creación, las instrucciones de pago y la consulta deben usar el mismo pedido y red. Este ejemplo utiliza un cobro TRC20 de importe fijo.
Preparar credenciales y notificaciones
Obtén Merchant UID, API Key y una URL HTTPS pública propia. Guarda la clave únicamente en el servidor, nunca en el navegador ni en directorios públicos. Comprueba el estado del comerciante, la cuenta de comisiones y los límites del plan. Consulta la firma de solicitudes.
Crear y guardar el pedido
Envía este cuerpo a POST /openapi/payin/orders desde tu servidor. No es una solicitud autenticada completa: utiliza un SDK o añade las cinco cabeceras de autenticación documentadas.
{
"chainCode": "TRON",
"tokenSymbol": "USDT",
"merchantOrderNo": "EXAMPLE-20260928-001",
"amount": "10.00",
"notifyUrl": "https://merchant.example.com/payments/uugate"
}
Los importes son cadenas. Guarda orderNo, merchantOrderNo, cashierUrl y expireAt antes de mostrar el enlace de pago. waiting_payment confirma la creación, no la recepción de fondos. Consulta los campos y respuestas.
Verificar antes de entregar
Verifica timestamp, nonce y cuerpo original con la API Key utilizada al crear el pedido. No vuelvas a serializar el JSON para verificarlo. Comprueba comerciante, pedido, red, activo e importe recibido. Usa una restricción única sobre el pedido de plataforma y una transacción para guardar el pago y el estado comercial antes de responder 2xx. Una notificación repetida no debe producir otro abono o envío. Consulta los callbacks de cobro.
Resolver resultados inciertos
La página de retorno no prueba el pago. Con el número de plataforma, consulta el pedido y exige status=completed para confirmar éxito final. Si la creación termina en timeout sin número, comprueba el resultado en el panel antes de reintentar. El número de pedido del comerciante no garantiza reintentos idempotentes.
Validar antes de publicar
- Prueba pago normal, firma inválida, notificación duplicada y endpoint temporalmente inaccesible.
- Los pagos vencidos, insuficientes o en otra red no deben entregar productos automáticamente.
- Conserva números de pedido, hashes y resultados, sin registrar API Keys.
- Usa el SDK Node.js o PHP / Laravel; revisa redes USDT y precios.