Vai al contenuto principale

Repository GitHub

Boilerplate Go + Dodo Payments minimale

Panoramica

Il boilerplate Go fornisce un punto di partenza pronto per la produzione per integrare Dodo Payments con il tuo backend Go. Questo template include la gestione delle sessioni di checkout, la verifica dei webhook, l’integrazione del portale clienti e segue le migliori pratiche di Go per aiutarti ad accettare pagamenti rapidamente.
Questo boilerplate utilizza Go 1.21+ con modelli di architettura pulita (cmd, internal, templates), template HTML e il dodopayments-go SDK per un’integrazione API senza soluzione di continuità.

Caratteristiche

  • Impostazione Rapida - Inizia in meno di 5 minuti
  • Integrazione dei Pagamenti - Flusso di checkout preconfigurato utilizzando il dodopayments-go SDK
  • UI Moderna - Pagina di pricing pulita a tema scuro con template HTML
  • Gestione dei Webhook - Verifica e gestisci in modo sicuro gli eventi di pagamento
  • Portale Clienti - Gestione autonoma degli abbonamenti
  • Migliori Pratiche di Go - Architettura pulita con cmd, internal e templates
  • Checkout Precompilato - Dimostra come passare i dati del cliente per migliorare l’esperienza utente

Requisiti

Prima di iniziare, assicurati di avere:
  • Go 1.21+
  • Account Dodo Payments (per accedere alle chiavi API e Webhook dal dashboard)

Avvio Rapido

1

Clona il Repository

git clone https://github.com/dodopayments/go-boilerplate.git
cd go-boilerplate
2

Installa le Dipendenze

make install
O manualmente:
go mod download
3

Ottieni le Credenziali API

Registrati su Dodo Payments e ottieni le tue credenziali dal dashboard:
Assicurati di essere in Modalità Test mentre sviluppi!
4

Configura le Variabili d'Ambiente

Crea un file .env nella directory principale:
cp .env.example .env
Aggiorna i valori con le tue credenziali Dodo Payments:
.env
DODO_PAYMENTS_API_KEY=your_api_key_here
DODO_PAYMENTS_WEBHOOK_KEY=your_webhook_signing_key_here
DODO_PAYMENTS_RETURN_URL=http://localhost:8000
DODO_PAYMENTS_ENVIRONMENT=test_mode
Non commettere mai il tuo file .env nel controllo di versione. È già incluso in .gitignore.
5

Aggiungi i Tuoi Prodotti

Aggiorna internal/lib/products.go con i tuoi ID prodotto reali da Dodo Payments:
var Products = []Product{
    {
        ProductID:   "pdt_001", // Replace with your product ID
        Name:        "Basic Plan",
        Description: "Get access to basic features and support",
        Price:       9999, // in cents
        Features: []string{
            "Access to basic features",
            "Email support",
            "1 Team member",
            "Basic analytics",
        },
    },
    // ... add more products
}
6

Esegui il Server di Sviluppo

make run
O manualmente:
go run cmd/server/main.go
Apri http://localhost:8000 per vedere la tua pagina di pricing!
Dovresti vedere una pagina di pricing a tema scuro con i tuoi prodotti pronti per l’acquisto.

Struttura del Progetto

go-boilerplate/
├── cmd/
│   └── server/             # Application entry point
├── internal/
│   ├── api/                # API handlers (Checkout, Portal, Webhook)
│   ├── core/               # Configuration and system core
│   └── lib/                # Shared logic (Products, Customer utils)
├── templates/              # HTML templates
├── Makefile                # Build and run commands
├── go.mod                  # Go module definition
├── go.sum                  # Dependency checksums
├── .env.example            # Environment template
└── README.md

Endpoint API

Il boilerplate include i seguenti endpoint preconfigurati:
EndpointMetodoDescrizione
/GETPagina di pricing con elenco dei prodotti
/api/checkoutPOSTCrea una nuova sessione di checkout
/api/webhookPOSTGestisci i webhook di Dodo Payments
/api/customer-portalPOSTGenera l’URL del portale clienti

Personalizzazione

Aggiorna le Informazioni sul Prodotto

Modifica internal/lib/products.go per modificare:
  • ID prodotto (dal tuo dashboard Dodo)
  • Prezzi
  • Caratteristiche
  • Descrizioni
var Products = []Product{
    {
        ProductID:   "pdt_001", // Replace with your product ID
        Name:        "Basic Plan",
        Description: "Get access to basic features and support",
        Price:       9999,
        Features: []string{
            "Access to basic features",
            "Email support",
            "1 Team member",
            "Basic analytics",
        },
    },
}

Pre-compila i Dati del Cliente

In templates/index.html, sostituisci i dati del cliente hardcoded con i tuoi dati utente reali:
const customerData = {
    name: "John Doe",       // Replace with actual logged-in user's name
    email: "[email protected]"  // Replace with actual logged-in user's email
};
In un’app di produzione, inietteresti dinamicamente questi valori dal tuo sistema di autenticazione.

Eventi Webhook

Il boilerplate dimostra la gestione degli eventi webhook in internal/api/webhook.go. Gli eventi supportati includono:
EventoDescrizione
subscription.activeAttivato quando un abbonamento diventa attivo
payment.succeededAttivato quando un pagamento ha successo
Aggiungi la tua logica aziendale all’interno del gestore webhook per:
  • Aggiornare i permessi utente nel tuo database
  • Inviare email di conferma
  • Fornire accesso a prodotti digitali
  • Monitorare analisi e metriche

Testare i Webhook Localmente

Per lo sviluppo locale, utilizza strumenti come ngrok per esporre il tuo server locale:
ngrok http 8000
Aggiorna l’URL del webhook nel tuo Dashboard Dodo Payments:
https://your-ngrok-url.ngrok.io/api/webhook

Distribuzione

Compila per la Produzione

make build
O manualmente:
go build -o bin/server cmd/server/main.go
./bin/server

Distribuisci su Vercel

[ Distribuisci con Vercel ](https://vercel.com/new/clone?repository-url=https://github.com/dodopayments/go-boilerplate)

Docker

Crea un Dockerfile:
FROM golang:1.21-alpine AS builder

WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN go build -o bin/server cmd/server/main.go

FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/bin/server .
COPY --from=builder /app/templates ./templates

EXPOSE 8000
CMD ["./server"]
Compila ed esegui:
docker build -t go-dodo .
docker run -p 8000:8000 --env-file .env go-dodo

Considerazioni per la Produzione

Prima di distribuire in produzione:
  • Passa da DODO_PAYMENTS_ENVIRONMENT a live_mode
  • Usa le chiavi API di produzione dal dashboard
  • Aggiorna l’URL del webhook al tuo dominio di produzione
  • Abilita HTTPS per tutti gli endpoint

Risoluzione dei Problemi

Assicurati che i moduli Go siano scaricati correttamente:
go mod tidy
go mod download
Cause comuni:
  • ID prodotto non valido - verifica che esista nel tuo dashboard Dodo
  • Chiave API errata o impostazione dell’ambiente in .env
  • Controlla i log del server per messaggi di errore dettagliati
Per il test locale, utilizza ngrok per esporre il tuo server:
ngrok http 8000
Aggiorna l’URL del webhook nel tuo dashboard Dodo all’URL ngrok. Assicurati di aggiornare il tuo file .env con la chiave di verifica del webhook corretta.
Assicurati di eseguire il server dalla directory principale del progetto, o che il percorso dei template sia configurato correttamente nel tuo codice.

Scopri di più

Supporto

Hai bisogno di aiuto con il boilerplate?