Checkout Handler
Tích hợp checkout của Dodo Payments vào máy chủ Bun của bạn.
Customer Portal
Cho phép khách hàng quản lý các subscription và thông tin chi tiết.
Webhooks
Nhận và xử lý các sự kiện webhook của Dodo Payments.
Cài đặt
1
Install the package
Chạy lệnh sau tại thư mục gốc của dự án:
2
Set up environment variables
Tạo tệp
.env tại thư mục gốc của dự án:Ví dụ Route Handler
Tất cả ví dụ đều giả định bạn đang sử dụng máy chủ native của Bun với
Bun.serve().- Checkout Handler
- Customer Portal Handler
- Webhook Handler
Sử dụng handler này để tích hợp checkout của Dodo Payments vào máy chủ Bun của bạn. Hỗ trợ các luồng thanh toán static (GET), dynamic (POST) và session (POST).
Checkout Route Handler
Dodo Payments hỗ trợ ba loại luồng thanh toán để tích hợp thanh toán vào website của bạn; adaptor này hỗ trợ tất cả các loại luồng thanh toán.
- Liên kết thanh toán static: URL có thể chia sẻ ngay để thu tiền nhanh chóng mà không cần code.
- Liên kết thanh toán dynamic: Tạo liên kết thanh toán theo chương trình với thông tin tùy chỉnh bằng API hoặc SDK.
- Checkout Sessions: Tạo trải nghiệm checkout được lưu trữ an toàn và có thể tùy chỉnh, với giỏ sản phẩm và thông tin khách hàng được cấu hình trước.
Static Checkout (GET)
Static Checkout (GET)
Query Parameters được hỗ trợ
string
bắt buộc
Mã định danh sản phẩm (ví dụ:
?productId=pdt_xxx).integer
Số lượng sản phẩm.
string
Họ tên đầy đủ của khách hàng.
string
Tên của khách hàng.
string
Họ của khách hàng.
string
Địa chỉ email của khách hàng.
string
Quốc gia của khách hàng.
string
Dòng địa chỉ của khách hàng.
string
Thành phố của khách hàng.
string
Bang/tỉnh của khách hàng.
string
Mã ZIP/mã bưu chính của khách hàng.
boolean
Tắt trường họ tên đầy đủ.
boolean
Tắt trường tên.
boolean
Tắt trường họ.
boolean
Tắt trường email.
boolean
Tắt trường quốc gia.
boolean
Tắt dòng địa chỉ.
boolean
Tắt trường thành phố.
boolean
Tắt trường bang.
boolean
Tắt trường mã ZIP.
string
Chỉ định currency thanh toán (ví dụ:
USD).boolean
Hiển thị bộ chọn currency.
integer
Chỉ định số tiền thanh toán (ví dụ:
1000 cho $10.00).boolean
Hiển thị các trường giảm giá.
string
Mọi query parameter bắt đầu bằng
metadata_ sẽ được truyền dưới dạng metadata.Định dạng response
Checkout static trả về response JSON với URL checkout:Dynamic Checkout (POST)
Dynamic Checkout (POST)
- Gửi các tham số dưới dạng JSON body trong request POST.
- Hỗ trợ cả thanh toán một lần và thanh toán định kỳ.
- Để xem danh sách đầy đủ các field được hỗ trợ trong POST body, tham khảo:
Định dạng response
Checkout dynamic trả về response JSON với URL checkout:Checkout Sessions (POST)
Checkout Sessions (POST)
Checkout sessions cung cấp trải nghiệm checkout được lưu trữ an toàn hơn, xử lý toàn bộ luồng thanh toán cho cả giao dịch mua một lần và subscription, đồng thời cho phép tùy chỉnh toàn diện.Tham khảo Hướng dẫn tích hợp Checkout Sessions để biết thêm chi tiết và xem danh sách đầy đủ các field được hỗ trợ.
Định dạng response
Checkout sessions trả về response JSON với URL checkout:Customer Portal Route Handler
Customer Portal Route Handler cho phép bạn tích hợp liền mạch Customer Portal của Dodo Payments vào ứng dụng máy chủ Bun.Query Parameters
string
bắt buộc
ID khách hàng cho portal session (ví dụ:
?customer_id=cus_123).boolean
Nếu được đặt thành
true, sẽ gửi email cho khách hàng kèm liên kết portal.Webhook Route Handler
- Method: Chỉ hỗ trợ request POST. Các method khác sẽ trả về 405.
- Xác minh chữ ký: Xác minh chữ ký webhook bằng
webhookKey. Trả về 401 nếu xác minh thất bại. - Xác thực payload: Được xác thực bằng Zod. Trả về 400 nếu payload không hợp lệ.
- Xử lý lỗi:
- 401: Chữ ký không hợp lệ
- 400: Payload không hợp lệ
- 500: Lỗi nội bộ trong quá trình xác minh
- Định tuyến sự kiện: Gọi event handler phù hợp dựa trên loại payload.