Skip to main content
SDK C# cung cấp quyền truy cập thuận tiện vào Dodo Payments REST API từ các ứng dụng viết bằng C#. Nó có API dựa trên async Task với kiểu dữ liệu mạnh, tự động thử lại và xử lý lỗi toàn diện.

Cài đặt

Cài đặt gói từ NuGet:
SDK yêu cầu .NET 8.0 trở lên. Nó hoạt động với ASP.NET Core, các ứng dụng Console và các loại dự án .NET khác.

Bắt đầu nhanh

Khởi tạo client và tạo phiên thanh toán:
Luôn lưu trữ khóa API của bạn một cách an toàn bằng biến môi trường, user secrets hoặc Azure Key Vault. Không bao giờ viết cứng chúng vào mã nguồn hoặc cam kết chúng lên hệ thống điều khiển phiên bản.

Tính năng chính

Async/Await

API bất đồng bộ dựa trên Task đầy đủ cho các thao tác không chặn

Strong Typing

Đảm bảo kiểu dữ liệu toàn diện với nullable reference types

Smart Retries

Tự động thử lại với độ trễ tăng dần cho các lỗi tạm thời

Error Handling

Hệ thống ngoại lệ tích hợp cho việc quản lý lỗi chính xác

Cấu hình

Biến môi trường

.env

Cấu hình Thủ công

Môi trường

Chuyển đổi giữa chế độ thực và chế độ kiểm tra:

Thử Lại

SDK tự động thử lại 2 lần theo mặc định với độ trễ tăng dần. Nó thử lại trên các lỗi kết nối và mã trạng thái 408, 409, 429 và 5xx.

Thời gian chờ

Các yêu cầu sẽ hết thời gian chờ sau 1 phút theo mặc định.

Ghi đè theo Yêu cầu

Tạm thời thay đổi cấu hình cho một yêu cầu duy nhất bằng cách sử dụng WithOptions:

Các Hoạt động Thông thường

Tạo Phiên Thanh Toán

Quản lý Khách hàng

Xử lý Đăng ký

POST /subscriptions (phương thức subscriptions.create của SDK) đã deprecated. Phương thức này vẫn hoạt động cho các tích hợp hiện có, nhưng các tích hợp mới nên tạo subscription thông qua Checkout Session.
Billing yêu cầu tối thiểu mã Country ISO gồm hai chữ cái. Sử dụng AttachExistingCustomer để liên kết một customer hiện có hoặc NewCustomer để tạo customer mới. ProductPrice được tính theo mệnh giá thấp nhất của currency.

Xử lý lỗi

SDK sẽ throw các exception cụ thể dựa trên HTTP status code. Tất cả lỗi 4xx đều kế thừa từ DodoPayments4xxException. Các loại exception khác:
  • DodoPaymentsIOException: Lỗi networking I/O
  • DodoPaymentsInvalidDataException: Không thể diễn giải dữ liệu đã được parsed
  • DodoPaymentsException: Base class cho tất cả exception

Phân trang

Tự động phân trang

Lặp qua tất cả kết quả trên mọi trang bằng phương thức Paginate, phương thức này trả về một IAsyncEnumerable:

Phân trang thủ công

Tích hợp ASP.NET Core

Đăng ký client trong DI container của bạn:
Program.cs
appsettings.json
Trong quá trình phát triển, hãy sử dụng user secrets thay vì lưu trữ các key trong appsettings.json:

Tài nguyên

NuGet Package

Xem package trên NuGet Gallery

GitHub Repository

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

API Reference

Xem tài liệu API đầy đủ

Discord Community

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

Hỗ trợ

Bạn cần trợ giúp về C# SDK?
Lần sửa đổi cuối 17 tháng 8, 2026