Tính Năng Mới
1. Thử Lại Thanh Toán Đăng Ký
Các khoản thanh toán gia hạn đăng ký bị lỗi giờ có thể được thử lại tự động để khôi phục doanh thu, không cần công việc tích hợp. Kích hoạt từ Cài đặt → Khôi phục, thiết lập cửa sổ khôi phục, và Dodo Payments sẽ thử lại gia hạn trên một lịch trình thông minh cho đến khi thành công hoặc cửa sổ đóng lại.
| Cài đặt | Mô tả | Mặc định |
|---|
| Bật Thử lại Thanh toán | Tự động thử lại các khoản thanh toán gia hạn đăng ký bị lỗi để khôi phục doanh thu. | Tắt (tùy chọn) |
| Cửa sổ khôi phục (ngày) | Thời gian thử lại một khoản thanh toán bị lỗi trước khi từ bỏ (1–30). | 13 |
Cách thức hoạt động
- Một khoản thanh toán gia hạn đăng ký bị lỗi và đăng ký chuyển sang
on_hold.
- Nếu lỗi có thể thử lại (lỗi mềm như thiếu tiền hoặc lỗi mạng tạm thời), lần thử tiếp theo sẽ được lên lịch tự động.
- Các lần thử xảy ra ngoài phiên với lịch trình thoái lui, bị giới hạn bởi cửa sổ khôi phục của bạn.
- Khi thử lại thành công đầu tiên, đăng ký trở lại
active và ngày thanh toán tiếp theo được đưa ra như bình thường.
Lịch trình thử lại
Các lần thử dần giới hạn lại, được neo vào thời điểm hóa đơn bị lỗi được tạo. Tối đa 8 lần thử được thực hiện, miễn là chúng nằm trong cửa sổ khôi phục của bạn:
| Lần thử | Trì hoãn sau lần trước |
|---|
| 1 | 12 giờ |
| 2 | 24 giờ |
| 3 | 48 giờ |
| 4 | 72 giờ |
| 5 | 96 giờ |
| 6 | 120 giờ |
| 7 | 7 ngày |
| 8 | 7 ngày |
Chỉ các lỗi mềm được thử lại (ví dụ: thiếu tiền, từ chối chung chung, lỗi xử lý hoặc mạng). Các lỗi cứng kết thúc chuỗi thử lại ngay lập tức, vì thử lại sẽ không thay đổi kết quả.
Điều này bổ sung cho các công cụ khôi phục hiện có — Subscription Dunning gửi email cho khách hàng để cập nhật phương thức thanh toán của họ, trong khi Thử lại Thanh toán âm thầm thực hiện lại lần thử hiện có. Chúng phối hợp tốt với nhau.
Tìm hiểu thêm: Thử lại Thanh toán Đăng ký | Subscription Dunning
2. Cài đặt Phân bổ Doanh nghiệp
Bây giờ bạn có thể thiết lập hành vi nâng cấp & hạ bậc mặc định một lần ở cấp doanh nghiệp thay vì truyền tham số phân bổ trên mỗi thay đổi kế hoạch. Các mặc định này áp dụng bất cứ khi nào khách hàng thay đổi kế hoạch của họ từ cổng thông tin khách hàng, và bạn có thể ghi đè chúng theo từng bộ sưu tập sản phẩm.
Mỗi hướng (nâng cấp và hạ bậc) có hai điều khiển độc lập, cùng với một chính sách thất bại thanh toán chung:
| Cài đặt | Trường | Mặc định (nâng cấp) | Mặc định (hạ bậc) |
|---|
| Khi kế hoạch mới bắt đầu | effective_at_on_upgrade / effective_at_on_downgrade | immediately | next_billing_date |
| Cách khách hàng bị tính phí | proration_billing_mode_on_upgrade / proration_billing_mode_on_downgrade | difference_immediately | difference_immediately |
| Nếu thanh toán của khách hàng thất bại | on_payment_failure | apply_change | apply_change |
Khi kế hoạch mới bắt đầu (effective_at)
| Giá trị | Hành vi |
|---|
immediately | Khách hàng ngay lập tức chuyển sang kế hoạch mới. |
next_billing_date | Khách hàng vẫn ở kế hoạch hiện tại cho đến ngày thanh toán tiếp theo, rồi chuyển sang kế hoạch mới. |
Cách khách hàng bị tính phí (proration_billing_mode)
| Giá trị | Hành vi |
|---|
prorated_immediately | Tính phí số tiền tương ứng ngay bây giờ, dựa trên thời gian còn lại trong chu kỳ thanh toán hiện tại. |
full_immediately | Tính phí giá đầy đủ của kế hoạch mới ngay bây giờ. |
difference_immediately | Chỉ tính phí chênh lệch giá giữa kế hoạch mới và kế hoạch hiện tại. |
do_not_bill | Không tính phí ngay bây giờ. Bất kỳ điều chỉnh nào cũng được áp dụng vào hóa đơn tiếp theo. |
Nếu thanh toán của khách hàng thất bại (on_payment_failure)
| Giá trị | Hành vi |
|---|
prevent_change | Giữ khách hàng ở kế hoạch hiện tại nếu thanh toán không thành công. |
apply_change | Chuyển khách hàng sang kế hoạch mới kể cả khi thanh toán không thành công. Bạn có thể thu sau. |
Ghi đè theo bộ sưu tập
Mỗi bộ sưu tập sản phẩm có thể ghi đè bất kỳ mặc định nào này. Mỗi trường đều độc lập — đặt nó ở Kế thừa từ doanh nghiệp để theo mặc định doanh nghiệp, hoặc chọn giá trị rõ ràng để ghi đè cho riêng bộ sưu tập đó.
Mỗi cài đặt được giải quyết theo thứ tự này:
per-request value (Change Plan API) → collection field (if set) → business field → system default
Một giá trị theo yêu cầu truyền vào Change Plan API (proration_billing_mode, effective_at, on_payment_failure) luôn có ưu tiên cao hơn cả mặc định bộ sưu tập và doanh nghiệp. Các cài đặt mới chỉ thay đổi những gì xảy ra khi không có giá trị rõ ràng được cung cấp — điều này đúng cho tất cả các thay đổi kế hoạch qua cổng thông tin khách hàng.
Tìm hiểu thêm: Subscription Upgrade & Downgrade | Bộ Sưu Tập Sản Phẩm
3. Thu Thập Tên Doanh Nghiệp cho Hóa Đơn B2B
Khách hàng B2B giờ có thể có tên pháp nhân doanh nghiệp của mình được hiển thị trên hóa đơn thay vì tên cá nhân của người mua. Khi một mã số thuế hợp lệ được cung cấp tại trang thanh toán, bạn cũng có thể thu thập customer_business_name liên quan để hóa đơn phản ánh thực thể mua hàng.
Khi khách hàng chọn Mua hàng như một doanh nghiệp tại thanh toán, họ được yêu cầu cung cấp cả Tên Doanh Nghiệp và Mã Số Thuế.
Tên doanh nghiệp xuất hiện trên hóa đơn chỉ khi tất cả ba điều kiện được đáp ứng:
- Giao dịch là B2B (
b2b = true)
- Có một
tax_id
- Có một
customer_business_name không trống được cung cấp
Nếu không thì sẽ sử dụng tên cá nhân của khách hàng.
Thu thập tại thanh toán
Đặt customer_business_name trực tiếp, và/hoặc kích hoạt allow_customer_editing_business_name để khách hàng nhập hoặc chỉnh sửa nó trên trang thanh toán cùng với Mã Số Thuế của họ:
const session = await client.checkoutSessions.create({
product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
customer: { email: 'buyer@acme.com' },
tax_id: 'GB123456789',
customer_business_name: 'Acme Corp Ltd',
feature_flags: {
allow_tax_id: true,
allow_customer_editing_business_name: true // let the customer enter/edit it
},
return_url: 'https://yoursite.com/return'
});
Nơi áp dụng
| Bề mặt | Trường | Ghi chú |
|---|
| Các Phiên Thanh Toán | customer_business_name, feature_flags.allow_customer_editing_business_name | Tối đa 250 ký tự; cờ mặc định là false |
| Các Khoản Thanh Toán | customer_business_name | Tối đa 250 ký tự |
| Các Đăng Ký | customer_business_name | Đặt hoặc xóa thông qua PATCH /subscriptions/{id} |
customer_business_name không thể được đặt mà không có tax_id. Gửi tên doanh nghiệp mà không có Mã Số Thuế sẽ bị từ chối. Xóa tax_id cũng sẽ xóa tên doanh nghiệp, vì hai cái này được ghép đôi trên hóa đơn.
Khoảng trắng bao quanh được cắt bỏ, và các giá trị chỉ có khoảng trắng được xem như một sự xóa rõ ràng — do đó dữ liệu lưu trữ luôn phù hợp với những gì được hiển thị trên hóa đơn.
Tìm hiểu thêm: Thanh Toán B2B | Quản Lý Hóa Đơn | Phiên Thanh Toán
Sửa Lỗi & Cải Tiến
- Sửa lỗi nhỏ và cải tiến độ ổn định trên toàn nền tảng.