Package: github.com/cp0x-org/mppx/middleware/fiber
Payment(...)- protects a route with a single payment method.Compose(...)- protects a route with multiple payment methods.GetReceipt(c)- returnsmpp.Receiptafter successful verification.
package main
import (
"os"
"github.com/gofiber/fiber/v2"
fibermpp "github.com/cp0x-org/mppx/middleware/fiber"
"github.com/cp0x-org/mppx/server"
)
func main() {
srv := server.New(server.Config{
SecretKey: os.Getenv("MPP_SECRET_KEY"),
Realm: "localhost",
})
app := fiber.New()
app.Get("/premium",
fibermpp.Payment(srv, myMethod, fiber.Map{"amount": "1000000"}),
func(c *fiber.Ctx) error {
receipt := fibermpp.GetReceipt(c)
return c.JSON(fiber.Map{
"ok": true,
"receipt": receipt.Reference,
})
},
)
_ = app.Listen(":8080")
}app.Post("/api/query",
fibermpp.Compose(srv,
server.Entry{Method: methodA, Request: fiber.Map{"amount": "1000000"}},
server.Entry{Method: methodB, Request: fiber.Map{"amount": "100"}},
),
handler,
)Full working examples: examples/fiber/server and examples/multi-method/server.