मुख्य सामग्री पर जाएं

GitHub Repository

न्यूनतम गो + डोडो पेमेंट्स बॉयलरप्लेट

अवलोकन

गो बॉयलरप्लेट डोडो पेमेंट्स को आपके गो बैकएंड के साथ एकीकृत करने के लिए एक उत्पादन-तैयार प्रारंभिक बिंदु प्रदान करता है। इस टेम्पलेट में चेकआउट सत्र प्रबंधन, वेबहुक सत्यापन, ग्राहक पोर्टल एकीकरण शामिल है, और यह गो के सर्वोत्तम प्रथाओं का पालन करता है ताकि आप जल्दी से भुगतान स्वीकार करना शुरू कर सकें।
यह बॉयलरप्लेट गो 1.21+ का उपयोग करता है जिसमें स्वच्छ आर्किटेक्चर पैटर्न (cmd, internal, templates), HTML टेम्पलेट, और API एकीकरण के लिए dodopayments-go SDK शामिल है।

विशेषताएँ

  • त्वरित सेटअप - 5 मिनट से कम में शुरू करें
  • भुगतान एकीकरण - dodopayments-go SDK का उपयोग करके पूर्व-कॉन्फ़िगर किया गया चेकआउट प्रवाह
  • आधुनिक UI - HTML टेम्पलेट के साथ साफ, डार्क-थीम वाला मूल्य निर्धारण पृष्ठ
  • वेबहुक प्रबंधन - भुगतान घटनाओं को सुरक्षित रूप से सत्यापित और संसाधित करें
  • ग्राहक पोर्टल - स्व-सेवा सदस्यता प्रबंधन
  • गो सर्वोत्तम प्रथाएँ - cmd, internal, और templates के साथ स्वच्छ आर्किटेक्चर
  • पूर्व-भरे हुए चेकआउट - UX में सुधार के लिए ग्राहक डेटा पास करने का प्रदर्शन

पूर्वापेक्षाएँ

शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:
  • गो 1.21+
  • डोडो पेमेंट्स खाता (डैशबोर्ड से API और वेबहुक कुंजी तक पहुँचने के लिए)

त्वरित प्रारंभ

1

रेपोजिटरी क्लोन करें

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

निर्भरता स्थापित करें

make install
या मैन्युअल रूप से:
go mod download
3

API क्रेडेंशियल प्राप्त करें

Dodo Payments पर साइन अप करें और डैशबोर्ड से अपने क्रेडेंशियल प्राप्त करें:
विकास के दौरान सुनिश्चित करें कि आप परीक्षण मोड में हैं!
4

पर्यावरण चर कॉन्फ़िगर करें

रूट निर्देशिका में एक .env फ़ाइल बनाएं:
cp .env.example .env
अपने डोडो पेमेंट्स क्रेडेंशियल के साथ मान अपडेट करें:
.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
कभी भी अपने .env फ़ाइल को संस्करण नियंत्रण में कमिट न करें। यह पहले से ही .gitignore में शामिल है।
5

अपने उत्पाद जोड़ें

internal/lib/products.go को अपने वास्तविक उत्पाद IDs के साथ अपडेट करें जो डोडो पेमेंट्स से हैं:
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

डेवलपमेंट सर्वर चलाएँ

make run
या मैन्युअल रूप से:
go run cmd/server/main.go
http://localhost:8000 खोलें ताकि आप अपना मूल्य निर्धारण पृष्ठ देख सकें!
आपको अपने उत्पादों के साथ खरीदने के लिए तैयार एक डार्क-थीम वाला मूल्य निर्धारण पृष्ठ दिखाई देना चाहिए।

परियोजना संरचना

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

API एंडपॉइंट्स

बॉयलरप्लेट में निम्नलिखित पूर्व-कॉन्फ़िगर किए गए एंडपॉइंट शामिल हैं:
एंडपॉइंटविधिविवरण
/GETउत्पाद सूची के साथ मूल्य निर्धारण पृष्ठ
/api/checkoutPOSTएक नया चेकआउट सत्र बनाएं
/api/webhookPOSTडोडो पेमेंट्स वेबहुक को संभालें
/api/customer-portalPOSTग्राहक पोर्टल URL उत्पन्न करें

अनुकूलन

उत्पाद जानकारी अपडेट करें

internal/lib/products.go को संपादित करें:
  • उत्पाद IDs (आपके डोडो डैशबोर्ड से)
  • मूल्य निर्धारण
  • विशेषताएँ
  • विवरण
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",
        },
    },
}

ग्राहक डेटा पूर्व-भरे

templates/index.html में, हार्डकोडेड ग्राहक डेटा को अपने वास्तविक उपयोगकर्ता डेटा से बदलें:
const customerData = {
    name: "John Doe",       // Replace with actual logged-in user's name
    email: "[email protected]"  // Replace with actual logged-in user's email
};
एक उत्पादन ऐप में, आप अपने प्रमाणीकरण प्रणाली से इन मानों को गतिशील रूप से इंजेक्ट करेंगे।

वेबहुक घटनाएँ

बॉयलरप्लेट internal/api/webhook.go में वेबहुक घटनाओं को संभालने का प्रदर्शन करता है। समर्थित घटनाएँ शामिल हैं:
घटनाविवरण
subscription.activeजब एक सदस्यता सक्रिय होती है तो ट्रिगर किया जाता है
payment.succeededजब एक भुगतान सफल होता है तो ट्रिगर किया जाता है
अपने व्यवसाय की लॉजिक को वेबहुक हैंडलर के अंदर जोड़ें ताकि:
  • अपने डेटाबेस में उपयोगकर्ता अनुमतियों को अपडेट करें
  • पुष्टि ईमेल भेजें
  • डिजिटल उत्पादों तक पहुँच प्रदान करें
  • विश्लेषण और मैट्रिक्स को ट्रैक करें

स्थानीय रूप से वेबहुक का परीक्षण करना

स्थानीय विकास के लिए, अपने स्थानीय सर्वर को उजागर करने के लिए ngrok जैसे उपकरणों का उपयोग करें:
ngrok http 8000
अपने डोडो पेमेंट्स डैशबोर्ड में वेबहुक URL अपडेट करें:
https://your-ngrok-url.ngrok.io/api/webhook

तैनाती

उत्पादन के लिए निर्माण करें

make build
या मैन्युअल रूप से:
go build -o bin/server cmd/server/main.go
./bin/server

वेरसेल पर तैनात करें

[ Vercel के साथ तैनात करें ](https://vercel.com/new/clone?repository-url=https://github.com/dodopayments/go-boilerplate)

डॉकर

एक 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"]
बनाएं और चलाएँ:
docker build -t go-dodo .
docker run -p 8000:8000 --env-file .env go-dodo

उत्पादन पर विचार

उत्पादन में तैनात करने से पहले:
  • DODO_PAYMENTS_ENVIRONMENT को live_mode में स्विच करें
  • डैशबोर्ड से उत्पादन API कुंजी का उपयोग करें
  • अपने उत्पादन डोमेन के लिए वेबहुक URL अपडेट करें
  • सभी एंडपॉइंट्स के लिए HTTPS सक्षम करें

समस्या निवारण

सुनिश्चित करें कि गो मॉड्यूल सही ढंग से डाउनलोड किए गए हैं:
go mod tidy
go mod download
सामान्य कारण:
  • अमान्य उत्पाद ID - सुनिश्चित करें कि यह आपके डोडो डैशबोर्ड में मौजूद है
  • .env में गलत API कुंजी या वातावरण सेटिंग
  • विस्तृत त्रुटि संदेशों के लिए सर्वर लॉग की जांच करें
स्थानीय परीक्षण के लिए, अपने सर्वर को उजागर करने के लिए ngrok का उपयोग करें:
ngrok http 8000
ngrok URL पर अपने डोडो डैशबोर्ड में वेबहुक URL अपडेट करें। सुनिश्चित करें कि आप अपने .env फ़ाइल को सही वेबहुक सत्यापन कुंजी के साथ अपडेट करें।
सुनिश्चित करें कि आप परियोजना की रूट निर्देशिका से सर्वर चला रहे हैं, या कि आपके कोड में टेम्पलेट पथ सही ढंग से कॉन्फ़िगर किया गया है।

अधिक जानें

सहायता

बॉयलरप्लेट के साथ मदद चाहिए?