Skip to main content
SDK PHP cung cấp một cách mạnh mẽ và linh hoạt để tích hợp Dodo Payments vào các ứng dụng PHP của bạn. Được xây dựng theo các tiêu chuẩn PHP hiện đại với autoloading PSR-4, nó cung cấp độ phủ kiểm tra rộng rãi và tài liệu chi tiết.

Cài đặt

Cài đặt SDK bằng Composer:
SDK yêu cầu PHP 8.1.0 trở lên và Composer để quản lý phụ thuộc.

Bắt đầu nhanh

Khởi tạo client và tạo phiên thanh toán:
Lưu trữ các khóa API một cách an toàn bằng biến môi trường. Không bao giờ để lộ chúng trong mã nguồn hoặc cam kết chúng vào hệ thống kiểm soát phiên bản.

Tính năng chính

PSR-4 Compliant

Tuân theo khuyến nghị chuẩn PHP cho phát triển PHP hiện đại

Modern PHP

Xây dựng cho PHP 8.1+ với khai báo kiểu và strict types

Extensive Testing

Bao phủ kiểm thử toàn diện để đảm bảo độ tin cậy và ổn định

Exception Handling

Các loại ngoại lệ rõ ràng cho các tình huống lỗi khác nhau

Các đối tượng giá trị

SDK sử dụng tham số đặt tên để chỉ định các đối số tùy chọn. Bạn có thể khởi tạo đối tượng giá trị bằng cách sử dụng constructor tĩnh with:
Các builder cũng có sẵn như một mẫu thay thế:

Cấu hình

Cấu hình thử lại

Một số lỗi được tự động thử lại 2 lần theo mặc định với độ chờ tăng theo hàm mũ ngắn. Các lỗi sau dẫn đến thử lại tự động:
  • Lỗi kết nối (sự cố kết nối mạng)
  • 408 Request Timeout
  • 409 Conflict
  • 429 Rate Limit
  • 500+ lỗi nội bộ
  • Hết thời gian chờ
Cấu hình hành vi thử lại toàn cục hoặc theo từng yêu cầu:

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

Tạo phiên thanh toán

Tạo một phiên thanh toán:

Quản lý khách hàng

Tạo và lấy thông tin khách hàng:

Xử lý đăng ký

Tạo và quản lý đăng ký định kỳ:
POST /subscriptions (phương thức subscriptions.create của SDK) đã deprecated. Phương thức này vẫn hoạt động đối với 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ã ISO gồm hai chữ cái country. Truyền AttachExistingCustomer::with(customerID: '...') để liên kết một customer hiện có hoặc NewCustomer::with(email: '...', name: '...') để tạo một customer. productPrice là mệnh giá tiền tệ nhỏ nhất.

Phân trang

Làm việc với các response dạng danh sách được phân trang:

Xử lý lỗi

Khi thư viện không thể kết nối với API hoặc nhận được status code không thành công (4xx hoặc 5xx), một subclass của APIException sẽ được throw:

Các loại lỗi

Luôn bọc các lệnh gọi API trong các block try-catch để xử lý các lỗi tiềm ẩn một cách linh hoạt và cung cấp phản hồi hữu ích cho người dùng.

Cách sử dụng nâng cao

Endpoint không được ghi lại

Thực hiện request đến các endpoint không được ghi lại:

Parameter không được ghi lại

Gửi các parameter không được ghi lại đến bất kỳ endpoint nào hoặc đọc các property không được ghi lại trong response:
Các parameter extra* có cùng tên sẽ ghi đè các parameter đã được ghi lại.

Tích hợp framework

Laravel

Tạo một service cho các ứng dụng Laravel:
Thêm cấu hình trong config/services.php:

Symfony

Tạo một service trong Symfony:
Đăng ký trong config/services.yaml:

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 cáo lỗi hoặc yêu cầu tính năng

Hỗ trợ

Bạn cần trợ giúp với PHP SDK?

Đóng góp

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