This commit is contained in:
Lizandro Guarnizo
2026-05-26 21:55:48 -05:00
parent d8f38a6669
commit 36c9e0a6d5
5 changed files with 382 additions and 0 deletions
+55
View File
@@ -12,11 +12,13 @@ import (
func PasarelasPage(c *fiber.Ctx) error {
boldCfg, _ := models.GetBoldConfig()
dlocalCfg, _ := models.GetLastActiveDlocalApi()
paypalCfg, _ := models.GetPaypalConfig()
data := fiber.Map{
"Title": "Pasarelas de Pago",
"Bold": boldCfg,
"Dlocal": dlocalCfg,
"Paypal": paypalCfg,
"user": c.Locals("user"),
"modules": c.Locals("userModules"),
}
@@ -543,3 +545,56 @@ func ValidarBoldLog(c *fiber.Ctx) error {
"data": entry,
})
}
// ─── PayPal ───────────────────────────────────────────────────────────────────
// GetPaypalConfigAPI devuelve la configuración activa de PayPal.
func GetPaypalConfigAPI(c *fiber.Ctx) error {
cfg, err := models.GetPaypalConfig()
if err != nil {
return c.JSON(fiber.Map{"data": nil})
}
return c.JSON(fiber.Map{"data": cfg})
}
// SavePaypalConfigWeb guarda o actualiza la configuración de PayPal.
func SavePaypalConfigWeb(c *fiber.Ctx) error {
type body struct {
ID uint `json:"id" form:"id"`
ClientIDSandbox string `json:"client_id_sandbox" form:"client_id_sandbox"`
ClientSecretSandbox string `json:"client_secret_sandbox" form:"client_secret_sandbox"`
ClientIDProd string `json:"client_id_prod" form:"client_id_prod"`
ClientSecretProd string `json:"client_secret_prod" form:"client_secret_prod"`
Modo string `json:"modo" form:"modo"`
WebhookID string `json:"webhook_id" form:"webhook_id"`
ReturnURL string `json:"return_url" form:"return_url"`
CancelURL string `json:"cancel_url" form:"cancel_url"`
Nota string `json:"nota" form:"nota"`
}
var b body
if err := c.BodyParser(&b); err != nil {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "body inválido"})
}
if b.Modo == "" {
b.Modo = "sandbox"
}
cfg := models.PaypalConfig{
ClientIDSandbox: b.ClientIDSandbox,
ClientSecretSandbox: b.ClientSecretSandbox,
ClientIDProd: b.ClientIDProd,
ClientSecretProd: b.ClientSecretProd,
Modo: b.Modo,
WebhookID: b.WebhookID,
ReturnURL: b.ReturnURL,
CancelURL: b.CancelURL,
Nota: b.Nota,
}
cfg.ID = b.ID
if err := models.SavePaypalConfig(cfg); err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
}
return c.JSON(fiber.Map{"message": "Configuración PayPal guardada"})
}