Đ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 sản phẩm đăng ký qua một trang thanh toán được lưu trữ an toàn. 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 (kích hoạt khi bất kỳ trường nào thay đổi).subscription.on_hold- Đăng ký bị tạm giữ do gia hạn thất bại.subscription.failed- Tạo đăng ký thất bại trong quá trình tạo ủy nhiệm.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- Cho biết đăng ký đã được kích hoạtpayment.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 dùng thử): Dự kiến trong vòng 2-10 phút
- Đối với ngày dùng thử: ngay khi kết thúc
subscription.renewed- Cho biết khoản thanh toán được trừ 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 cho sản phẩm đăng ký được trừ, bạn sẽ nhận được webhooksubscription.renewedcùng vớipayment.succeeded)
- Thất bại Đăng ký
subscription.failed- Tạo đăng ký thất bại do không thể tạo ủy nhiệm.payment.failed- Cho biết thanh toán thất bại.
- Đăng ký bị tạm giữ
subscription.on_hold- Đăng ký bị tạm giữ do thanh toán gia hạn thất bại hoặc phí thay đổi gói thất bại.- Khi đăng ký bị tạm giữ, nó sẽ không tự động gia hạn cho đến khi cập nhật phương thức thanh toán.
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ý chuyển sang 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. Phần này giải thích khi nào đăng ký bị tạm giữ và cách xử lý.
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 đă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 sẽ tự động:
- Tạo một khoản phí cho số tiền còn nợ
- Tạo 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
activekhi thanh toán thành công
Handle subscription.on_hold webhook
Khi bạn nhận được 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:Update payment method
Khi khách hàng sẵn sàng cập nhật phương thức thanh toán, 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 phương thức thanh toán:
Ví Dụ Về Payload Sự Kiện Đăng Ký
| Property | Type | Required | Description |
|---|---|---|---|
business_id | string | Yes | The unique identifier for the business |
timestamp | string | Yes | The timestamp of when the event occurred (not necessarily the same as when it was delivered) |
type | string | Yes | The type of event. See Event Types |
data | object | Yes | The main data payload. See Data Object |
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ổ.Change Plan API Reference
Để biết thông tin chi tiết về cách thay đổi gói đăng ký, vui lòng tham khảo tài liệu API Thay Đổi Gói 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 được điều chỉnh theo tỷ lệ dựa trên thời gian còn lại trong chu kỳ thanh toán hiện tại
- Chỉ tính phí khách hàng khoản chênh lệch giữa gói cũ và mới
- Trong thời gian dùng thử, điều này sẽ chuyển người dùng sang gói mới ngay lập tức và tính phí 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ý của gói mới
- Bỏ qua mọi thời gian còn lại hoặc tín dụng từ gói trước đó
- Hữu ích khi bạn muốn thiết lập lại chu kỳ thanh toán hoặc tính toàn bộ số tiền bất kể điều chỉnh theo tỷ lệ
3. difference_immediately
- Khi nâng cấp, khách hàng được tính ngay khoản chênh lệch giữa hai gói.
- Ví dụ, nếu gói hiện tại là 30 Dollars và khách hàng nâng cấp lên gói 80 Dollars, họ sẽ bị tính $50 ngay lập tức.
- Khi hạ cấp, số tiền chưa sử dụng từ gói hiện tại đượ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ý sau.
- Ví dụ, nếu gói hiện tại là 50 Dollars và khách hàng chuyển sang gói 20 Dollars, $30 còn lại sẽ được ghi có 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 lập tức bắt đầu một khoản phí dựa trên tùy chọn điều chỉnh tỷ lệ mà bạn đã chọn
- Nếu việc thay đổi gói là hạ cấp và bạn sử dụng
prorated_immediately, các khoản tín dụng sẽ được 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 dành riêng cho đăng ký đó và chỉ được dùng để bù đắp 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_immediatelybỏ qua việc tính toán tín dụng và tính toàn bộ số tiền của gói 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 nhu cầu cho phép bạn tính phí linh hoạt cho khách hàng, không chỉ theo lịch trình cố định. Tính năng này có sẵn cho tất cả các tài khoản.
on_demand trong phần thân yêu cầu. Điều này cho phép bạn ủy quyền một phương thức thanh toán mà không tính phí ngay lập tức, hoặc đặt mức giá khởi tạo 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ụ 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 Nhu Cầu.