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
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/.- Checkout API Route
- Customer Portal API Route
- Webhook API Route
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).
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.
Static Checkout (GET)
Static Checkout (GET)
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.Định dạng phản hồi
Checkout static trả về phản hồi JSON chứa URL checkout:Dynamic Checkout (POST)
Dynamic Checkout (POST)
- Gửi các parameter trong JSON body của yêu cầu 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
Dynamic checkout trả về response JSON chứa URL checkout:Checkout Sessions (POST)
Checkout Sessions (POST)
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.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.