Skip to main content

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:
Không bao giờ commit tệp .env hoặc secrets vào hệ thống quản lý phiên bả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().
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.

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.
Nếu thiếu productId, handler sẽ trả về response 400. Query parameter không hợp lệ cũng dẫn đến response 400.

Định dạng response

Checkout static trả về response JSON với URL checkout:

Định dạng response

Checkout dynamic trả về response JSON với URL checkout:
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.
Trả về 400 nếu thiếu customer_id.

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.

Event Handler webhook được hỗ trợ


Prompt cho LLM

Lần sửa đổi cuối 21 tháng 7, 2026