GitHub Repository
Minimal Go + Dodo Payments-boilerplate
Översikt
Go boilerplate ger en produktionsklar startpunkt för att integrera Dodo Payments med din Go backend. Denna mall inkluderar hantering av checkout-sessioner, verifiering av webhooks, integration av kundportal och följer Go:s bästa praxis för att hjälpa dig att börja ta emot betalningar snabbt.Detta boilerplate använder Go 1.21+ med ren arkitektur (
cmd, internal, templates), HTML-mallar och dodopayments-go SDK för sömlös API-integrering.Funktioner
- Snabb uppstart – Kom igång på under 5 minuter
- Betalintegration – Förkonfigurerat checkout-flöde med
dodopayments-goSDK - Modern UI – Ren, mörkprydd prislista med HTML-mallar
- Webhook-hantering – Verifiera och bearbeta betalevents säkert
- Kundportal – Självbetjäningshantering av prenumerationer
- Go-bästa praxis – Ren arkitektur med
cmd,internalochtemplates - Förifylld checkout – Visar hur du skickar kunddata för att förbättra UX
Förutsättningar
Innan du börjar, se till att du har:- Go 1.21+
- Dodo Payments-konto (för att få tillgång till API- och Webhook-nycklar från instrumentpanelen)
Snabbstart
Get API Credentials
Registrera dig på Dodo Payments och hämta dina uppgifter från instrumentpanelen:
- API-nyckel: Instrumentpanel → Utvecklare → API-nycklar
- Webhook-nyckel: Instrumentpanel → Utvecklare → Webhooks
Configure Environment Variables
Skapa en Uppdatera värdena med dina Dodo Payments-uppgifter:
.env-fil i rotkatalogen:.env
Add Your Products
Uppdatera
internal/lib/products.go med dina faktiska produkt-ID:n från Dodo Payments:Run the Development Server
Du bör se en mörkprydd prislista med dina produkter redo att köpas.
Projektstruktur
API-endpunkter
Boilerplate inkluderar följande förkonfigurerade endpunkter:| Endpoint | Method | Description |
|---|---|---|
/ | GET | Pricing page with product listing |
/api/checkout | POST | Create a new checkout session |
/api/webhook | POST | Handle Dodo Payments webhooks |
/api/customer-portal | POST | Generate customer portal URL |
Anpassning
Uppdatera produktinformation
Redigerainternal/lib/products.go för att ändra:
- Produkt-ID:n (från din Dodo-instrumentpanel)
- Prissättning
- Funktioner
- Beskrivningar
Förifyll kunddata
Itemplates/index.html, ersätt de hårdkodade kunduppgifterna med dina faktiska användaruppgifter:
Webhook-händelser
Boilerplaten visar hur webhook-events hanteras iinternal/api/webhook.go. Stöd för följande events ingår:
| Event | Description |
|---|---|
subscription.active | Triggered when a subscription becomes active |
payment.succeeded | Triggered when a payment is successful |
- Uppdatera användarbehörigheter i din databas
- Skicka bekräftelsemail
- Tillhandahålla åtkomst till digitala produkter
- Spåra analyser och mätvärden
Testa webhooks lokalt
För lokal utveckling, använd verktyg som ngrok för att exponera din lokala server:Distribution
Bygg för produktion
Distribuera till Vercel
[Docker
Skapa enDockerfile:
Produktionsöverväganden
Felsökning
Build errors or missing dependencies
Build errors or missing dependencies
Se till att Go-moduler laddas ner korrekt:
Checkout session creation fails
Checkout session creation fails
Vanliga orsaker:
- Ogiltigt produkt-ID – verifiera att det finns i din Dodo-instrumentpanel
- Fel API-nyckel eller miljöinställning i
.env - Kontrollera serverloggarna för detaljerade felmeddelanden
Webhooks not receiving events
Webhooks not receiving events
För lokal testning, använd ngrok för att exponera din server:Uppdatera webhook-URL:en i din Dodo-instrumentpanel till ngrok-URL:en. Se till att uppdatera din
.env-fil med rätt webhook-verifieringsnyckel.Templates not loading
Templates not loading
Se till att du kör servern från projektets rotkatalog, eller att mallvägen är korrekt konfigurerad i din kod.
Lär dig mer
Go SDK
Komplett Go SDK-dokumentation
Webhooks Documentation
Lär dig om alla webhook-events och bästa praxis
Checkout Sessions
Fördjupa dig i checkout-sessionens konfiguration
API Reference
Komplett Dodo Payments API-dokumentation
Support
Behöver du hjälp med boilerplate?- Gå med i vår Discord-community för frågor och diskussioner
- Kolla in GitHub-repositoriet för problem och uppdateringar
- Kontakta vårt supportteam för hjälp