Skip to main content
SDK Go cung cấp một giao diện Go sạch sẽ và theo phong cách cho việc tích hợp Dodo Payments vào các ứng dụng của bạn. Nó hỗ trợ ngữ cảnh, phản hồi kiểu mạnh, khả năng middleware và an toàn cho việc sử dụng đồng thời.

Cài đặt

Cài đặt SDK bằng cách sử dụng Go modules:
Hoặc để gán cho một phiên bản cụ thể:
SDK yêu cầu Go 1.22 hoặc các phiên bản mới hơn, tận dụng các tính năng hiện đại của Go để đạt hiệu suất tối ưu.

Bắt đầu nhanh

Khởi tạo client và tạo phiên checkout đầu tiên của bạn:
Luôn lưu trữ khóa API của bạn một cách an toàn bằng cách sử dụng biến môi trường. Không bao giờ mã hóa cứng chúng trong mã nguồn.

Tính năng chính

Context Support

Hỗ trợ đầy đủ cho context.Context đối với việc hủy và hết thời gian chờ

Strong Typing

Các yêu cầu và phản hồi kiểu mạnh để đảm bảo an toàn tại thời gian biên dịch

Middleware

Hỗ trợ middleware mở rộng cho ghi nhật ký, số liệu và logic tùy chỉnh

Goroutine Safe

Client an toàn luồng được thiết kế cho các thao tác đồng thời

Cấu hình

Context và Thời gian chờ

Tận dụng context của Go cho thời gian chờ và hủy bỏ:

Cấu hình Retry

Cấu hình hành vi tự động thử lại:

Các thao tác phổ biến

Tạo một phiên Checkout

Tạo một phiên checkout:

Quản lý Khách hàng

Tạo và truy xuất thông tin khách hàng:

Xử lý Đăng ký

Tạo và quản lý các đăng ký định kỳ:
POST /subscriptions (phương thức subscriptions.create của SDK) đã không còn được dùng. Phương thức này vẫn hoạt động với các integration hiện có, nhưng integration mới nên tạo subscription thông qua Checkout Session.
Billing yêu cầu tối thiểu mã ISO gồm hai chữ cái Country. Customer là một CustomerRequestUnionParam — truyền AttachExistingCustomerParam{CustomerID: ...} cho customer hiện có hoặc NewCustomerParam{Email: ..., Name: ...} cho customer mới. ProductPrice được tính theo đơn vị tiền tệ nhỏ nhất.

Tính phí theo mức sử dụng

Tiếp nhận sự kiện sử dụng

Theo dõi các sự kiện tùy chỉnh:

Liệt kê sự kiện sử dụng

Xử lý lỗi

Khi API trả về mã trạng thái không thành công, SDK trả về một lỗi thuộc kiểu *dodopayments.Error. Lỗi này cung cấp StatusCode, *http.Request bên dưới và *http.Response, cùng với JSON của nội dung lỗi. Sử dụng mẫu errors.As để kiểm tra lỗi, và rẽ nhánh dựa trên StatusCode để xử lý các trường hợp cụ thể:

Middleware

Thêm middleware tùy chỉnh để ghi log hoặc thu thập metrics:

Tính đồng thời

Client an toàn khi được sử dụng đồng thời:

Tài nguyên

GitHub Repository

Xem mã nguồn và đóng góp

API Reference

Tài liệu API đầy đủ

Discord Community

Nhận trợ giúp và kết nối với các developer

Report Issues

Báo lỗi hoặc yêu cầu tính năng

Hỗ trợ

Bạn cần trợ giúp về Go SDK?

Đóng góp

Chúng tôi hoan nghênh các đóng góp! Hãy xem hướng dẫn đóng góp để bắt đầu.
Lần sửa đổi cuối 17 tháng 8, 2026