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.
42 lines
1.9 KiB
Go
Executable File
42 lines
1.9 KiB
Go
Executable File
package routes
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
apiControllers "github.com/sujit-baniya/fiber-boilerplate/rest/controllers/api"
|
|
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
|
|
)
|
|
|
|
func ApiRoutes(api fiber.Router) {
|
|
v1Routes(api)
|
|
}
|
|
|
|
func v1AuthRoutes(api fiber.Router) {
|
|
api.Post("/oauth/token", apiControllers.OAuthToken)
|
|
api.Post("/generate-qr-tmp", apiControllers.CreateQrTmp)
|
|
api.Post("/generate-qr", apiControllers.CreateQr)
|
|
api.Post("/generate-vcf", apiControllers.CreateVcf)
|
|
api.Post("/dlocal/subscription/crear-plan", apiControllers.CreatePlan)
|
|
api.Get("/dlocal/subscription/ver-plan/:planID", apiControllers.SeePlan)
|
|
api.Patch("/dlocal/subscription/actualizar-plan/:planID", apiControllers.UpdatedPlan)
|
|
api.Patch("/dlocal/subscription/plan/:planId/subscription/:subscriptionId/deactivate", apiControllers.DeactivatePlan)
|
|
api.Get("/dlocal/subscription/plan/all", apiControllers.SeePlanes)
|
|
api.Get("/dlocal/subscription/:subscriptionId/execution/:invoiceId", apiControllers.SeeSubscription)
|
|
api.Post("/dlocal/payment/crear-pago", apiControllers.CreatePago)
|
|
api.Post("/rapyd/wallet/create", apiControllers.MakeWallet)
|
|
api.Post("/generate-url-qr", apiControllers.CreateUrlQr)
|
|
api.Post("/ia/ollama-generate", apiControllers.GeneraTextoStream)
|
|
|
|
// ─── Pagos externos: API pública para apps de terceros ────────────────────
|
|
// Autenticación propia (token Bearer + IP), independiente de la sesión/JWT
|
|
// interna — por eso está excluida en AuthApi() (rest/middlewares/auth.go).
|
|
pagosExt := api.Group("/pagos-externos", middlewares.AuthServicioPago)
|
|
pagosExt.Get("/pasarelas", apiControllers.PasarelasDisponiblesHandler)
|
|
pagosExt.Post("/solicitar", apiControllers.SolicitarPagoExternoHandler)
|
|
pagosExt.Get("/:referencia/estado", apiControllers.EstadoPagoExternoHandler)
|
|
}
|
|
|
|
func v1Routes(api fiber.Router) {
|
|
v1 := api.Group("v1")
|
|
v1AuthRoutes(v1)
|
|
}
|