Agrega API de pagos externos: tokens por servicio, atados a pasarela e IP

Permite emitir credenciales (token hasheado + IP/CIDR opcional) desde
/app/pagos-externos para que aplicaciones de terceros pidan cobros a
través de Bold/dLocal/PayPal sin acceso a nada más del sistema:

- POST /api/v1/pagos-externos/solicitar genera el link de cobro real
  usando solo las pasarelas habilitadas para ese servicio.
- Los webhooks existentes de Bold/dLocal/PayPal (firma obligatoria,
  idempotentes) ahora también resuelven referencias "extpay-…" sin
  tocar el flujo de contratos ("contrato-{id}").
- Al confirmarse el pago se notifica por webhook firmado (HMAC) y/o
  Telegram, configurable por servicio.
- CRUD de servicios protegido con SoloAdmin; token y callback_secret
  solo se muestran una vez, en DB se guardan hasheados.
This commit is contained in:
Lizandro GD
2026-08-04 14:16:13 +00:00
parent 3e2e4b63e9
commit e5849549a0
15 changed files with 1424 additions and 5 deletions
+8
View File
@@ -262,6 +262,14 @@ func AdminApiRoutes(api fiber.Router) {
h.Delete("/ai-config/:id", controllers.DeleteAiConfigHandler)
h.Get("/ai-config/:id/test", controllers.TestAiConfigHandler)
// ─── Pagos externos (API para que apps de terceros pidan cobros) ───────────
h.Get("/pagos-externos/servicios", controllers.GetServiciosPagoExterno)
h.Post("/pagos-externos/servicios", controllers.CreateServicioPagoExternoHandler)
h.Put("/pagos-externos/servicios/:id", controllers.UpdateServicioPagoExternoHandler)
h.Delete("/pagos-externos/servicios/:id", controllers.DeleteServicioPagoExternoHandler)
h.Post("/pagos-externos/servicios/:id/regenerar-token", controllers.RegenerarTokenServicioPagoHandler)
h.Get("/pagos-externos/solicitudes", controllers.GetSolicitudesPagoExternoHandler)
// ─── OSS API (almacenamiento) ────────────────────────────────────────────
h.Get("/oss-api", controllers.GetOssApiConfigs)
h.Get("/oss-api/active", controllers.GetActiveOssApiList)