Skip to main content

Checkout API Route

Tích hợp checkout của Dodo Payments vào ứng dụng Nuxt bằng server route.

Customer Portal API Route

Cho phép khách hàng quản lý các gói đăng ký và thông tin chi tiết thông qua server route của Nuxt.

Webhooks API Route

Nhận và xử lý an toàn các sự kiện webhook của Dodo Payments trong Nuxt.

Tổng quan

Hướng dẫn này giải thích cách tích hợp Dodo Payments vào ứng dụng Nuxt bằng module Nuxt chính thức. Bạn sẽ tìm hiểu cách thiết lập các API route cho checkout, customer portal và webhook, cũng như cách quản lý an toàn các biến môi trường.

Cài đặt

1

Install the Nuxt module

Chạy lệnh sau trong thư mục gốc của dự án:
2

Register the module in nuxt.config.ts

Thêm @dodopayments/nuxt vào mảng modules và cấu hình module:
nuxt.config.ts
Không bao giờ commit tệp .env hoặc các secret vào hệ thống quản lý phiên bản.

Ví dụ về API Route Handler

Tất cả tích hợp Dodo Payments trong Nuxt đều được xử lý thông qua các server route trong thư mục server/routes/api/.
Sử dụng handler này để tích hợp checkout của Dodo Payments vào ứng dụng Nuxt. Hỗ trợ các luồng thanh toán static (GET), dynamic (POST) và session (POST).
Nếu thiếu hoặc không hợp lệ productId, handler sẽ trả về phản hồi 400.

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; bộ chuyển đổi này hỗ trợ tất cả các loại luồng thanh toán.
  • Payment Links Static: URL có thể chia sẻ ngay để thu tiền nhanh mà không cần code.
  • Payment Links Dynamic: Tạo payment link theo cách lập 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 an toàn, 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 sẵn.

Các tham số truy vấn được hỗ trợ

string
bắt buộc
Mã định danh sản phẩm (ví dụ: ?productId=pdt_nZuwz45WAs64n3l07zpQR).
integer
Số lượng sản phẩm.
string
Họ và 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
Vô hiệu hóa trường họ và tên.
boolean
Vô hiệu hóa trường tên.
boolean
Vô hiệu hóa trường họ.
boolean
Vô hiệu hóa trường email.
boolean
Vô hiệu hóa trường quốc gia.
boolean
Vô hiệu hóa dòng địa chỉ.
boolean
Vô hiệu hóa trường thành phố.
boolean
Vô hiệu hóa trường bang.
boolean
Vô hiệu hóa trường mã ZIP.
string
Chỉ định loại tiền thanh toán (ví dụ: USD).
boolean
Hiển thị bộ chọn loại tiền tệ.
number
Cố định số tiền được tính, theo đơn vị tiền tệ chính (ví dụ: 12.5 cho 12,50 USD). Chỉ áp dụng cho các sản phẩm Pay What You Want và bị bỏ qua nếu thấp hơn giá tối thiểu của sản phẩm.
boolean
Hiển thị các trường giảm giá.
string
Mọi tham số truy vấn bắt đầu bằng metadata_ sẽ được truyền dưới dạng metadata.
Nếu thiếu productId, handler sẽ trả về phản hồi 400. Query parameter không hợp lệ cũng dẫn đến phản hồi 400.

Định dạng phản hồi

Checkout static trả về phản hồi JSON chứa URL checkout:
Dynamic Checkout proxy các endpoint POST /paymentsPOST /subscriptions đã deprecated. Tính năng này vẫn hoạt động cho các tích hợp hiện có, nhưng các tích hợp mới nên sử dụng Checkout Sessions bên dưới.

Định dạng Response

Dynamic checkout trả về response JSON chứa URL checkout:
Checkout sessions cung cấp trải nghiệm checkout được host an toàn hơn, xử lý toàn bộ quy trình thanh toán cho cả giao dịch mua một lần và subscription, đồng thời cho phép kiểm soát đầy đủ việc tùy chỉnh.Tham khảo Hướng dẫn tích hợp Checkout Sessions để biết thêm chi tiết và danh sách đầy đủ các field được hỗ trợ.

Định dạng Response

Checkout sessions trả về response JSON chứa URL checkout:

Route Handler cho Customer Portal

Route Handler cho Customer Portal cho phép bạn tích hợp liền mạch customer portal của Dodo Payments vào ứng dụng Nuxt.

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, hệ thống sẽ gửi email chứa liên kết portal cho khách hàng.
Trả về 400 nếu thiếu customer_id.

Webhook Route Handler

  • Method: Chỉ hỗ trợ các request POST. Các method khác 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 Event: Gọi event handler phù hợp dựa trên loại payload.

Các Webhook Event Handler được hỗ trợ


Prompt cho LLM

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