Skip to main content

Giới thiệu

Chạy các function của Inngest và background job khi xảy ra các sự kiện payment. Dodo Payments gửi từng sự kiện đến Inngest, nơi các function của bạn có thể gửi thông báo, cập nhật database và chạy các workflow nhiều bước với tính năng retry và xử lý lỗi của Inngest.
Bạn cần một URL webhook của Inngest. Bạn tạo URL này trong Inngest dashboard tại Manage → Webhooks.

Bắt đầu

1

Open the Webhook Section

Trong dashboard Dodo Payments, đi đến Developer → Webhooks và nhấp vào Add endpoint.
Add endpoint dialog with Inngest selected in the Integration dropdown
2

Select Inngest

Trong Integration, chọn Inngest. Trong Subscribed events, chọn các sự kiện sẽ kích hoạt function của bạn.
3

Create an Inngest Webhook

Trong Inngest dashboard, mở tab Manage và chọn Webhooks. Tạo một webhook và sao chép URL của webhook. Inngest chạy transform function của webhook trên mỗi request, vì vậy hãy kiểm tra để đảm bảo function này giữ lại các field name và data mà các function của bạn yêu cầu.
4

Paste Webhook URL

Dán URL webhook của Inngest vào Endpoint URL.
5

Configure Transformation

Trong Transformation code, chỉnh sửa code để định dạng các sự kiện cho các function Inngest của bạn. Xem các ví dụ bên dưới.
6

Test & Create

Trong Test this code, chọn một loại sự kiện và nhấp vào Simulate để chạy transformation trên một payload mẫu. Sau đó nhấp vào Create endpoint để kích hoạt integration.
7

Done

Các sự kiện Dodo Payments giờ đây sẽ kích hoạt các function Inngest của bạn.

Ví dụ Mã Biến đổi

Mỗi ví dụ chuyển đổi webhook.payload thành một sự kiện Inngest. name là sự kiện mà function của bạn kích hoạt, data chứa thông tin chi tiết về sự kiện, user chứa thông tin customer và ts là thời gian sự kiện tính bằng milliseconds, theo yêu cầu của event format của Inngest.

Basic Event Payload

basic_event.js

Subscription Event Handler

subscription_event.js

Dispute Event Handler

Handler này chuyển tiếp mọi sự kiện dispute.* và đánh dấu dispute.opened là khẩn cấp. Dispute payload không bao gồm thông tin customer, vì vậy handler không gửi object user.
dispute_event.js

Các trường hợp sử dụng Inngest phổ biến

  • Gửi email xác nhận
  • Cập nhật bản ghi customer
  • Xử lý refund
  • Tạo invoice
  • Cập nhật inventory
  • Chào mừng subscriber mới
  • Xử lý cancellation
  • Gửi lời nhắc gia hạn
  • Cập nhật billing cycle
  • Xử lý payment thất bại
  • Cập nhật các chỉ số doanh thu
  • Theo dõi hành vi customer
  • Tạo report
  • Đồng bộ dữ liệu với các nền tảng analytics
  • Tính churn rate

Mẹo

  • Sử dụng tên sự kiện có tính mô tả. Inngest khuyến nghị thêm tiền tố là nguồn, chẳng hạn như dodo/payment.succeeded.
  • Đặt thông tin customer vào user, nơi Inngest mã hóa dữ liệu khi lưu trữ.
  • Đặt ts từ timestamp của webhook, tính bằng milliseconds, để các sự kiện giữ nguyên thứ tự và thời gian ban đầu.
  • Sử dụng cùng một cấu trúc dữ liệu cho các sự kiện.
  • Sử dụng các tính năng retry và xử lý lỗi của Inngest.

Khắc phục sự cố

  • Kiểm tra để đảm bảo Endpoint URL khớp với URL webhook của Inngest và webhook đang hoạt động.
  • Kiểm tra để đảm bảo function Inngest của bạn đã được deploy và đang hoạt động.
  • Kiểm tra để đảm bảo tên sự kiện khớp với các trigger của function.
  • Xem log của function Inngest để tìm lỗi.
  • Kiểm tra để đảm bảo cấu trúc payload khớp với event format của Inngest.
  • Kiểm tra để đảm bảo tên sự kiện được định dạng chính xác.
  • Kiểm tra để đảm bảo transform function của Inngest webhook giữ lại các field mà transformation của Dodo Payments thiết lập.
  • Kiểm tra để đảm bảo tất cả field bắt buộc đều được đưa vào.
  • Kiểm thử bằng công cụ kiểm thử webhook của Inngest.
Lần sửa đổi cuối 26 tháng 9, 2026