Chuyển đến nội dung chính

GitHub Repository

Hoàn chỉnh mã nguồn và hướng dẫn thiết lập

Thiết lập nhanh

1. Yêu cầu trước khi bắt đầu

2. Cài đặt các phụ thuộc

3. Thiết lập cơ sở dữ liệu

  1. Đăng ký Neon
  2. Tạo một dự án mới
  3. Mở Trình chỉnh sửa SQL
  4. Sao chép và dán nội dung của schema.sql
  5. Chạy truy vấn
  6. Lấy chuỗi kết nối của bạn từ Neon → Connection Details

4. Cấu hình bí mật ban đầu

Note: Chúng tôi sẽ thiết lập DODO_PAYMENTS_WEBHOOK_KEY sau khi triển khai khi bạn có URL webhook.

5. Cập nhật wrangler.toml

Chỉnh sửa wrangler.toml và đặt tên worker của bạn:

6. Triển khai

7. Lấy URL Webhook của bạn

URL webhook của bạn là:

8. Đăng ký Webhook trong Bảng điều khiển DodoPayments

  1. Truy cập DodoPayments Dashboard → Developer → Webhooks
  2. Tạo một endpoint webhook mới
  3. Cấu hình URL webhook của bạn là endpoint
  4. Bật các sự kiện đăng ký sau:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Sao chép Signing Secret

9. Đặt Khóa Webhook & Triển khai lại

Chức năng của nó

Xử lý các sự kiện đăng ký và lưu trữ chúng trong PostgreSQL:
  • subscription.active - Tạo/cập nhật hồ sơ khách hàng và đăng ký
  • subscription.cancelled - Đánh dấu đăng ký là đã hủy
  • subscription.renewed - Cập nhật ngày thanh toán tiếp theo

Tính năng chính

Xác thực chữ ký - Sử dụng thư viện dodopayments
Tính bất biến - Ngăn xử lý trùng lặp bằng ID webhook
Ghi nhật ký sự kiện - Dấu vết kiểm toán đầy đủ trong bảng webhook_events
Xử lý lỗi - Được ghi nhật ký và có thể thử lại
Note: Cài đặt này minh họa cách xử lý ba sự kiện đăng ký cốt lõi (subscription.active, subscription.cancelled, subscription.renewed) với các trường tối thiểu. Bạn có thể dễ dàng mở rộng để hỗ trợ các loại sự kiện và trường bổ sung dựa trên yêu cầu của mình.

Tệp cấu hình

Sơ đồ cơ sở dữ liệu

Các bảng được tạo:
  • customers - Email, tên, dodo_customer_id
  • subscriptions - Trạng thái, số tiền, next_billing_date, liên kết với khách hàng
  • webhook_events - Nhật ký sự kiện với webhook_id để đảm bảo idempotency

Mã triển khai

Cách hoạt động

Bộ xử lý webhook:
  1. Xác thực chữ ký - Đảm bảo yêu cầu đến từ DodoPayments bằng HMAC-SHA256
  2. Kiểm tra trùng lặp - Sử dụng ID webhook để ngăn xử lý sự kiện giống nhau hai lần
  3. Ghi nhật ký sự kiện - Lưu webhook nguyên bản vào bảng webhook_events để phục vụ kiểm tra
  4. Xử lý sự kiện - Tạo hoặc cập nhật khách hàng và đăng ký
  5. Xử lý lỗi - Ghi lại thất bại và đánh dấu sự kiện là chưa xử lý để thử lại

Kiểm tra

Phát triển cục bộ:
Cấu hình trong Bảng điều khiển DodoPayments:
  1. Đi tới Nhà phát triển → Webhooks
  2. Thêm điểm cuối với URL Worker của bạn
  3. Kích hoạt: subscription.active, subscription.cancelled, subscription.renewed

Vấn đề thường gặp

Tài nguyên

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