Đ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 các gói đăng ký, bạn sẽ nhận được webhooks để theo dõi vòng đời của gói thuê bao. Các webhooks này giúp bạn quản lý trạng thái thuê bao và các kịch bản thanh toán một cách hiệu quả. Để thiết lập endpoint 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 Thuê Bao
Các sự kiện webhook sau theo dõi các thay đổi trạng thái thuê bao:subscription.active- Thuê bao được kích hoạt thành công.subscription.updated- Đối tượng thuê bao đã được cập nhật (khởi động khi có bất kỳ thay đổi nào).subscription.on_hold- Thuê bao bị tạm dừng do gia hạn thất bại.subscription.failed- Tạo thuê bao thất bại trong quá trình tạo ủy quyền.subscription.renewed- Thuê bao được gia hạn cho chu kỳ thanh toán tiếp theo.
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 webhooks sau:subscription.active- Chỉ định kích hoạt thuê baopayment.succeeded- Xác nhận thanh toán ban đầu:- Đối với thanh toán tức thì (không có ngày dùng thử): Mong đợi trong vòng 2-10 phút
- Đối với thử nghiệm: bất cứ khi nào kết thúc
subscription.renewed- Chỉ định 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 thanh toán được khấu trừ cho các sản phẩm thuê bao, bạn sẽ nhận được webhooksubscription.renewedcùng vớipayment.succeeded)
- Thất Bại Thuê Bao
subscription.failed- Tạo thuê bao thất bại do không thể tạo ủy quyền.payment.failed- Chỉ ra thanh toán thất bại.
- Thuê Bao Bị Tạm Dừng
subscription.on_hold- Thuê bao bị tạm giữ do gia hạn thất bại hoặc thay đổi kế hoạch thất bại.- Khi một thuê bao bị tạm dừng, 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 nghị chủ yếu theo dõi các sự kiện thuê bao để quản lý vòng đời thuê bao.
subscription.failed vs. subscription.on_hold
Hai sự kiện này dễ gây nhầm lẫn, nhưng chúng yêu cầu xử lý rất khác nhau:
Xử Lý Thuê Bao Bị Tạm Dừng
Khi thuê bao 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. Phần này giải thích khi nào thuê bao bị tạm dừng và cách xử lý chúng.
Khi Nào Thuê Bao Bị Tạm Dừng
Thuê bao bị tạm dừng khi:- Gia hạn thanh toán thất bại: Thanh toán tự động thất bại do thiếu tiền, thẻ hết hạn, hoặc bị ngân hàng từ chối
- Thay đổi kế hoạch thất bại: Thanh toán tức thì trong quá trình nâng cấp/giảm cấp kế hoạch thất bại
- Ủy quyền phương thức thanh toán thất bại: Không thể ủy quyền phương thức thanh toán cho các khoản phí định kỳ
Kích Hoạt Lại Thuê Bao Từ Trạng Thái Tạm Dừng
Để kích hoạt lại thuê bao từ trạng tháion_hold, 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 phí cho các khoản ủng hộ còn lại
- 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 thuê bao về trạng thái
activekhi thanh toán thành công
1
Handle subscription.on_hold webhook
Khi bạn nhận được webhook
subscription.on_hold, 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
Update payment method
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 phương thức thanh toán:
3
Monitor webhook events
Sau khi cập nhật phương thức thanh toán, giám sát các sự kiện webhook này:
payment.succeeded- Phí cho các khoản ủng hộ còn lại đã thành côngsubscription.active- Thuê bao đã được kích hoạt lại
Mẫu Payload sự kiện Thuê Bao
Thay Đổi Kế Hoạch Thuê Bao
Bạn có thể nâng cấp hoặc hạ cấp kế hoạch thuê bao sử dụng endpoint API thay đổi kế hoạch. Điều này cho phép bạn thay đổi sản phẩm thuê bao, số lượng, và xử lý phân bổ chi phí.Change Plan API Reference
Để biết thông tin chi tiết về thay đổi kế hoạch thuê bao, 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ổ Chi Phí
Khi thay đổi kế hoạch thuê bao, bạn có hai tùy chọn để xử lý phí tức thì: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í 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ẽ chuyển người dùng ngay lập tức sang kế hoạch mới, tính phí khách hàng ngay lập tức
2. full_immediately
- Tính phí khách hàng toàn bộ số tiền thuê bao cho kế hoạch mới
- Bỏ qua thời gian còn lại hoặc các khoản tín dụng 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ố lượng bất kể phân bổ
3. difference_immediately
- Khi nâng cấp, khách hàng ngay lập tức bị tính phí số tiền chênh lệch giữa hai 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 còn lại không sử dụng từ kế hoạch hiện tại được thêm vào dưới dạng tín dụng nội bộ và tự động áp dụng cho các lần gia hạn thuê bao 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ố còn lại 30 đô la sẽ được ghi nhận 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 tạo một khoản phí dựa trên tùy chọn phân bổ mà bạn đã chọn
- Nếu thay đổi kế hoạch là hạ cấp và bạn sử dụng
prorated_immediately, các khoản 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 thuê bao. Các khoản tín dụng này sẽ chỉ được sử dụng để giảm các khoản thanh toán định kỳ trong tương lai của cùng một thuê bao - Tùy chọn
full_immediatelysẽ bỏ qua các tính toán tín dụng và tính phí toàn bộ số lượng kế hoạch mới
Xử Lý Thanh Toán
- Phí tức thì khởi tạo khi thay đổi kế hoạch thường sẽ hoàn tất xử lý trong vòng chưa đến 2 phút
- Nếu phí tức thì này thất bại vì bất kỳ lý do nào, thuê bao sẽ tự động bị tạm dừng cho đến khi vấn đề được giải quyết
Thuê Bao Theo Nhu Cầu
Thuê bao theo nhu cầu cho phép bạn tính phí khách hàng một cách linh hoạt, không chỉ theo lịch cố định. Tính năng này có sẵn cho tất cả các tài khoản.
on_demand trong 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 giá ban đầu tùy chỉnh.
Để tính phí thuê bao theo nhu cầu:
Đối với các khoản phí tiếp theo, sử dụng endpoint 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 từng bước hoàn chỉnh—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 Thuê Bao Theo Nhu Cầu.
Tham Khảo API Liên Quan
Create Subscription
Tham khảo API tạo sản phẩm thuê bao và quản lý vòng đời thuê bao
Change Subscription Plan
Tham khảo API nâng cấp, hạ cấp, hoặc thay đổi kế hoạch thuê bao với các tùy chọn phân bổ
Update Payment Method
Tham khảo API cập nhật phương thức thanh toán và kích hoạt lại thuê bao bị tạm dừng
Patch Subscription
Tham khảo API cập nhật chi tiết và cấu hình thuê bao