Kho lưu trữ GitHub
Boilerplate Go + Dodo Payments tối thiểu
Tổng quan
Boilerplate Go cung cấp một điểm khởi đầu sẵn sàng cho sản xuất để tích hợp Dodo Payments với backend Go của bạn. Mẫu này bao gồm xử lý phiên thanh toán, xác minh webhook, tích hợp cổng khách hàng và tuân theo các thực tiễn tốt nhất của Go để giúp bạn bắt đầu chấp nhận thanh toán nhanh chóng.Boilerplate này sử dụng Go 1.21+ với các mẫu kiến trúc sạch (
cmd, internal, templates), các mẫu HTML, và SDK dodopayments-go để tích hợp API liền mạch.Tính năng
- Cài đặt nhanh - Bắt đầu trong chưa đầy 5 phút
- Tích hợp thanh toán - Quy trình thanh toán được cấu hình sẵn sử dụng SDK
dodopayments-go - Giao diện hiện đại - Trang giá sạch sẽ, chủ đề tối với các mẫu HTML
- Xử lý Webhook - Xác minh và xử lý sự kiện thanh toán một cách an toàn
- Cổng khách hàng - Quản lý đăng ký tự phục vụ
- Thực tiễn tốt nhất của Go - Kiến trúc sạch với
cmd,internal, vàtemplates - Thanh toán tự động điền - Chứng minh việc truyền dữ liệu khách hàng để cải thiện UX
Điều kiện tiên quyết
Trước khi bạn bắt đầu, hãy đảm bảo bạn đã có:- Go 1.21+
- Tài khoản Dodo Payments (để truy cập API và Webhook Keys từ bảng điều khiển)
Bắt đầu nhanh
1
Nhân bản kho lưu trữ
2
Cài đặt phụ thuộc
3
Lấy thông tin xác thực API
Đăng ký tại Dodo Payments và lấy thông tin xác thực của bạn từ bảng điều khiển:
- API Key: Bảng điều khiển → Nhà phát triển → API Keys
- Webhook Key: Bảng điều khiển → Nhà phát triển → Webhooks
4
Cấu hình biến môi trường
Tạo một tệp Cập nhật các giá trị với thông tin xác thực Dodo Payments của bạn:
.env trong thư mục gốc:.env
5
Thêm sản phẩm của bạn
Cập nhật
internal/lib/products.go với các ID sản phẩm thực tế của bạn từ Dodo Payments:6
Chạy máy chủ phát triển
Bạn sẽ thấy một trang giá với chủ đề tối với các sản phẩm của bạn sẵn sàng để mua.
Cấu trúc dự án
API Endpoints
Boilerplate bao gồm các điểm cuối được cấu hình sẵn sau:| Điểm cuối | Phương thức | Mô tả |
|---|---|---|
/ | GET | Trang giá với danh sách sản phẩm |
/api/checkout | POST | Tạo một phiên thanh toán mới |
/api/webhook | POST | Xử lý webhook Dodo Payments |
/api/customer-portal | POST | Tạo URL cổng khách hàng |
Tùy chỉnh
Cập nhật thông tin sản phẩm
Chỉnh sửainternal/lib/products.go để sửa đổi:
- ID sản phẩm (từ bảng điều khiển Dodo của bạn)
- Giá cả
- Tính năng
- Mô tả
Tự động điền dữ liệu khách hàng
Trongtemplates/index.html, thay thế dữ liệu khách hàng được mã hóa cứng bằng dữ liệu người dùng thực tế của bạn:
Sự kiện Webhook
Boilerplate chứng minh việc xử lý các sự kiện webhook tronginternal/api/webhook.go. Các sự kiện được hỗ trợ bao gồm:
| Sự kiện | Mô tả |
|---|---|
subscription.active | Kích hoạt khi một đăng ký trở nên hoạt động |
payment.succeeded | Kích hoạt khi một thanh toán thành công |
- Cập nhật quyền người dùng trong cơ sở dữ liệu của bạn
- Gửi email xác nhận
- Cung cấp quyền truy cập vào các sản phẩm kỹ thuật số
- Theo dõi phân tích và số liệu
Kiểm tra Webhook Locally
Đối với phát triển cục bộ, sử dụng các công cụ như ngrok để mở rộng máy chủ cục bộ của bạn:Triển khai
Xây dựng cho sản xuất
Triển khai lên Vercel
[Docker
Tạo mộtDockerfile:
Cân nhắc sản xuất
Khắc phục sự cố
Lỗi xây dựng hoặc thiếu phụ thuộc
Lỗi xây dựng hoặc thiếu phụ thuộc
Đảm bảo các mô-đun Go đã được tải đúng cách:
Tạo phiên thanh toán thất bại
Tạo phiên thanh toán thất bại
Nguyên nhân phổ biến:
- ID sản phẩm không hợp lệ - xác minh nó tồn tại trong bảng điều khiển Dodo của bạn
- Khóa API sai hoặc cài đặt môi trường trong
.env - Kiểm tra nhật ký máy chủ để biết thông điệp lỗi chi tiết
Webhook không nhận sự kiện
Webhook không nhận sự kiện
Đối với kiểm tra cục bộ, sử dụng ngrok để mở rộng máy chủ của bạn:Cập nhật URL webhook trong bảng điều khiển Dodo đến URL ngrok. Hãy chắc chắn cập nhật tệp
.env của bạn với khóa xác minh webhook chính xác.Mẫu không tải
Mẫu không tải
Đảm bảo bạn đang chạy máy chủ từ thư mục gốc của dự án, hoặc rằng đường dẫn mẫu được cấu hình đúng trong mã của bạn.
Tìm hiểu thêm
Go SDK
Tài liệu SDK Go đầy đủ
Tài liệu Webhooks
Tìm hiểu về tất cả các sự kiện webhook và các thực tiễn tốt nhất
Phiên thanh toán
Khám phá sâu về cấu hình phiên thanh toán
Tài liệu API
Tài liệu API Dodo Payments đầy đủ
Hỗ trợ
Cần giúp đỡ với boilerplate?- Tham gia cộng đồng Discord của chúng tôi để đặt câu hỏi và thảo luận
- Kiểm tra kho lưu trữ GitHub để biết các vấn đề và cập nhật
- Liên hệ với đội ngũ hỗ trợ của chúng tôi để được trợ giúp