Điều Kiện Tiên Quyết
Để tích hợp API Dodo Payments, bạn cần:- Một tài khoản thương nhân Dodo Payments
- Thông tin xác thực API (khóa API và khóa bí mật webhook) từ bảng điều khiển
Tích Hợp API
Phiên Thanh Toán
Sử dụng Phiên Thanh Toán để bán các sản phẩm đăng ký với một quy trình thanh toán an toàn, được lưu trữ. Truyền sản phẩm đăng ký của bạn vàoproduct_cart và chuyển hướng khách hàng đến checkout_url được trả về.
- Node.js SDK
- Python SDK
- REST API
Phản Hồi API
Dưới đây là một ví dụ về phản hồi:checkout_url.
Webhooks
Khi tích hợp đăng ký, bạn sẽ nhận được webhooks để theo dõi vòng đời đăng ký. Những webhooks này giúp bạn quản lý trạng thái đăng ký và các kịch bản thanh toán một cách hiệu quả. Để thiết lập điểm cuối webhook của bạn, vui lòng làm theo Hướng Dẫn Tích Hợp Chi Tiết.Các Loại Sự Kiện Đăng Ký
Các sự kiện webhook sau theo dõi sự thay đổi trạng thái đăng ký:subscription.active- Đăng ký đã được kích hoạt thành công.subscription.updated- Đối tượng đăng ký đã được cập nhật (xảy ra khi có bất kỳ thay đổi nào về trường).subscription.on_hold- Đăng ký bị tạm hoãn do gia hạn không thành công.subscription.failed- Tạo đăng ký không thành công trong quá trình tạo ủy quyền.subscription.renewed- Đăng ký được gia hạn cho kỳ thanh toán tiếp theo.
Các Kịch Bản Thanh Toán
Luồng Thanh Toán Thành Công Khi một khoản thanh toán thành công, bạn sẽ nhận được các webhook sau:subscription.active- Chỉ ra việc kích hoạt đăng kýpayment.succeeded- Xác nhận khoản thanh toán ban đầu:- Đối với thanh toán ngay lập tức (0 ngày thử nghiệm): Mong đợi trong vòng 2-10 phút
- Đối với các ngày thử nghiệm: bất cứ khi nào nó kết thúc
subscription.renewed- Chỉ ra việc khấu trừ thanh toán và gia hạn cho chu kỳ tiếp theo. (Về cơ bản, bất cứ khi nào khoản thanh toán được khấu trừ cho các sản phẩm đăng ký, bạn sẽ nhận được webhooksubscription.renewedcùng vớipayment.succeeded)
- Thất bại Đăng Ký
subscription.failed- Tạo đăng ký không thành công do không thể tạo ủy quyền.payment.failed- Chỉ ra thanh toán thất bại.
- Đăng Ký Bị Tạm Hoãn
subscription.on_hold- Đăng ký bị tạm hoãn do thanh toán gia hạn không thành công hoặc phí thay đổi kế hoạch không thành công.- Khi một đăng ký bị tạm hoãn, nó sẽ không tự động gia hạn cho đến khi phương thức thanh toán được cập nhật.
Thực Hành Tốt Nhất: Để đơn giản hóa việc triển khai, chúng tôi khuyên bạn nên theo dõi chủ yếu các sự kiện đăng ký để quản lý vòng đời đăng ký.
Xử Lý Đăng Ký Bị Tạm Hoãn
Khi một đăng ký vào trạng tháion_hold, bạn cần cập nhật phương thức thanh toán để kích hoạt lại nó. Phần này giải thích khi nào các đăng ký bị tạm hoãn và cách xử lý chúng.
Khi Nào Đăng Ký Bị Tạm Hoãn
Một đăng ký bị tạm hoãn khi:- Thanh toán gia hạn không thành công: Phí gia hạn tự động không thành công do không đủ tiền, thẻ hết hạn hoặc ngân hàng từ chối
- Phí thay đổi kế hoạch không thành công: Một khoản phí ngay lập tức trong quá trình nâng cấp/hạ cấp kế hoạch không thành công
- Ủy quyền phương thức thanh toán không thành công: Phương thức thanh toán không thể được ủy quyền cho các khoản phí định kỳ
Kích Hoạt Lại Đăng Ký Từ Trạng Thái Bị Tạm Hoãn
Để kích hoạt lại một đăng ký từ trạng tháion_hold, hãy sử dụng API Cập Nhật Phương Thức Thanh Toán. Điều này tự động:
- Tạo một khoản phí cho các khoản nợ còn lại
- Tạo một hóa đơn cho khoản phí
- Xử lý thanh toán bằng phương thức thanh toán mới
- Kích hoạt lại đăng ký về trạng thái
activesau khi thanh toán thành công
1
Xử lý webhook subscription.on_hold
Khi bạn nhận được một webhook
subscription.on_hold, hãy cập nhật trạng thái ứng dụng của bạn và thông báo cho khách hàng:2
Cập nhật phương thức thanh toán
Khi khách hàng sẵn sàng cập nhật phương thức thanh toán của họ, hãy gọi API Cập Nhật Phương Thức Thanh Toán:
Bạn cũng có thể sử dụng ID phương thức thanh toán hiện có nếu khách hàng đã lưu các phương thức thanh toán:
3
Theo dõi các sự kiện webhook
Sau khi cập nhật phương thức thanh toán, hãy theo dõi các sự kiện webhook sau:
payment.succeeded- Khoản phí cho các khoản nợ còn lại đã thành côngsubscription.active- Đăng ký đã được kích hoạt lại
Ví Dụ Về Payload Sự Kiện Đăng Ký
| Thuộc Tính | Loại | Bắt Buộc | Mô Tả |
|---|---|---|---|
business_id | string | Có | Định danh duy nhất cho doanh nghiệp |
timestamp | string | Có | Dấu thời gian khi sự kiện xảy ra (không nhất thiết phải giống như khi nó được gửi đi) |
type | string | Có | Loại sự kiện. Xem Các Loại Sự Kiện |
data | object | Có | Payload dữ liệu chính. Xem Đối Tượng Dữ Liệu |
Thay Đổi Kế Hoạch Đăng Ký
Bạn có thể nâng cấp hoặc hạ cấp một kế hoạch đăng ký bằng cách sử dụng điểm cuối API thay đổi kế hoạch. Điều này cho phép bạn sửa đổi sản phẩm, số lượng của đăng ký và xử lý việc phân bổ.Tài Liệu Tham Khảo API Thay Đổi Kế Hoạch
Để biết thông tin chi tiết về việc thay đổi kế hoạch đăng ký, vui lòng tham khảo tài liệu API Thay Đổi Kế Hoạch của chúng tôi.
Tùy Chọn Phân Bổ
Khi thay đổi kế hoạch đăng ký, bạn có hai tùy chọn để xử lý khoản phí ngay lập tức:1. prorated_immediately
- Tính toán số tiền phân bổ dựa trên thời gian còn lại trong chu kỳ thanh toán hiện tại
- Tính phí cho khách hàng chỉ cho sự khác biệt giữa kế hoạch cũ và mới
- Trong thời gian thử nghiệm, điều này sẽ ngay lập tức chuyển người dùng sang kế hoạch mới, tính phí cho khách hàng ngay lập tức
2. full_immediately
- Tính phí cho khách hàng toàn bộ số tiền đăng ký cho kế hoạch mới
- Bỏ qua bất kỳ thời gian còn lại hoặc tín dụng nào từ kế hoạch trước
- Hữu ích khi bạn muốn đặt lại chu kỳ thanh toán hoặc tính phí toàn bộ số tiền bất kể phân bổ
3. difference_immediately
- Khi nâng cấp, khách hàng sẽ ngay lập tức bị tính phí sự khác biệt giữa hai số tiền kế hoạch.
- Ví dụ, nếu kế hoạch hiện tại là 30 đô la và khách hàng nâng cấp lên 80 đô la, họ sẽ bị tính phí 50 đô la ngay lập tức.
- Khi hạ cấp, số tiền chưa sử dụng từ kế hoạch hiện tại sẽ được thêm vào tín dụng nội bộ và tự động áp dụng cho các lần gia hạn đăng ký trong tương lai.
- Ví dụ, nếu kế hoạch hiện tại là 50 đô la và khách hàng chuyển sang kế hoạch 20 đô la, số tiền còn lại 30 đô la sẽ được tín dụng và sử dụng cho chu kỳ thanh toán tiếp theo.
Hành Vi
- Khi bạn gọi API này, Dodo Payments sẽ ngay lập tức khởi động một khoản phí dựa trên tùy chọn phân bổ mà bạn đã chọn
- Nếu việc thay đổi kế hoạch là một sự hạ cấp và bạn sử dụng
prorated_immediately, các tín dụng sẽ được tự động tính toán và thêm vào số dư tín dụng của đăng ký. Những tín dụng này là cụ thể cho đăng ký đó và sẽ chỉ được sử dụng để bù đắp cho các khoản thanh toán định kỳ trong tương lai của cùng một đăng ký - Tùy chọn
full_immediatelysẽ bỏ qua việc tính toán tín dụng và tính phí toàn bộ số tiền cho kế hoạch mới
Xử Lý Khoản Phí
- Khoản phí ngay lập tức được khởi động khi thay đổi kế hoạch thường hoàn tất xử lý trong chưa đầy 2 phút
- Nếu khoản phí ngay lập tức này không thành công vì bất kỳ lý do gì, đăng ký sẽ tự động bị tạm hoãn cho đến khi vấn đề được giải quyết
Đăng Ký Theo Yêu Cầu
Đăng ký theo yêu cầu cho phép bạn tính phí cho khách hàng một cách linh hoạt, không chỉ theo một lịch trình cố định. Liên hệ với bộ phận hỗ trợ để kích hoạt tính năng này.
on_demand trong thân yêu cầu của bạn. Điều này cho phép bạn ủy quyền một phương thức thanh toán mà không cần tính phí ngay lập tức, hoặc đặt một mức giá khởi đầu tùy chỉnh.
Để tính phí cho một đăng ký theo yêu cầu:
Đối với các khoản phí tiếp theo, hãy sử dụng điểm cuối POST /subscriptions/charge và chỉ định số tiền để tính phí cho khách hàng cho giao dịch đó.
Để có hướng dẫn đầy đủ, từng bước—bao gồm ví dụ về yêu cầu/phản hồi, chính sách thử lại an toàn và xử lý webhook—hãy xem Hướng Dẫn Đăng Ký Theo Yêu Cầu.