Giới thiệu
Thực thi các chức năng serverless và công việc nền tự động khi xảy ra các sự kiện thanh toán. Xử lý thanh toán, gửi thông báo, cập nhật cơ sở dữ liệu và chạy các quy trình phức tạp với nền tảng thực thi chức năng đáng tin cậy của Inngest.
Tích hợp này yêu cầu URL webhook Inngest của bạn từ cấu hình chức năng.
Bắt đầu
Mở phần Webhook
Trong bảng điều khiển Dodo Payments của bạn, điều hướng đến Webhooks → + Thêm Điểm cuối và mở rộng menu thả xuống tích hợp.
Chọn Inngest
Chọn thẻ tích hợp Inngest .
Tạo Chức năng Inngest
Trong Inngest, tạo một chức năng mới và sao chép URL webhook từ cấu hình chức năng.
Dán URL Webhook
Dán URL webhook Inngest vào cấu hình điểm cuối.
Cấu hình Biến đổi
Chỉnh sửa mã biến đổi để định dạng các sự kiện cho chức năng Inngest của bạn.
Kiểm tra & Tạo
Kiểm tra với các payload mẫu và nhấp vào Tạo để kích hoạt tích hợp.
Xong!
🎉 Các sự kiện thanh toán giờ đây sẽ tự động kích hoạt các chức năng Inngest của bạn.
Ví dụ Mã Biến đổi
Payload Sự kiện Cơ bản
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . payload = {
name: "payment.succeeded" ,
data: {
payment_id: p . payment_id ,
amount: ( p . total_amount / 100 ). toFixed ( 2 ),
currency: p . currency || "USD" ,
customer_email: p . customer . email ,
customer_name: p . customer . name ,
payment_method: p . payment_method || "unknown"
},
user: {
email: p . customer . email
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
}
return webhook ;
}
See all 21 lines
Bộ xử lý Sự kiện Đăng ký
function handler ( webhook ) {
const s = webhook . payload . data ;
switch ( webhook . eventType ) {
case "subscription.active" :
webhook . payload = {
name: "subscription.started" ,
data: {
subscription_id: s . subscription_id ,
customer_email: s . customer . email ,
customer_name: s . customer . name ,
product_id: s . product_id ,
amount: ( s . recurring_pre_tax_amount / 100 ). toFixed ( 2 ),
frequency: s . payment_frequency_interval ,
next_billing: s . next_billing_date
},
user: {
email: s . customer . email
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
break ;
case "subscription.cancelled" :
webhook . payload = {
name: "subscription.cancelled" ,
data: {
subscription_id: s . subscription_id ,
customer_email: s . customer . email ,
cancelled_at: s . cancelled_at ,
cancel_at_next_billing: s . cancel_at_next_billing_date
},
user: {
email: s . customer . email
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
break ;
}
return webhook ;
}
See all 39 lines
Bộ xử lý Sự kiện Tranh chấp
function handler ( webhook ) {
if ( webhook . eventType . startsWith ( "dispute." )) {
const d = webhook . payload . data ;
webhook . payload = {
name: webhook . eventType ,
data: {
dispute_id: d . dispute_id ,
payment_id: d . payment_id ,
amount: ( d . amount / 100 ). toFixed ( 2 ),
status: d . dispute_status ,
stage: d . dispute_stage ,
remarks: d . remarks || "" ,
urgent: webhook . eventType === "dispute.opened"
},
user: {
email: d . customer ?. email || "unknown"
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
}
return webhook ;
}
See all 22 lines
Các Trường hợp Sử dụng Inngest Thông thường
Gửi email xác nhận
Cập nhật hồ sơ khách hàng
Xử lý hoàn tiền
Tạo hóa đơn
Cập nhật hàng tồn kho
Chào mừng các thuê bao mới
Xử lý hủy bỏ
Gửi nhắc nhở gia hạn
Cập nhật chu kỳ thanh toán
Xử lý các khoản thanh toán không thành công
Cập nhật các chỉ số doanh thu
Theo dõi hành vi khách hàng
Tạo báo cáo
Đồng bộ dữ liệu với các nền tảng phân tích
Tính toán tỷ lệ rời bỏ
Mẹo
Sử dụng tên sự kiện mô tả để tổ chức chức năng tốt hơn
Bao gồm ngữ cảnh người dùng cho việc thực thi chức năng
Đặt dấu thời gian chính xác cho việc sắp xếp sự kiện
Cấu trúc dữ liệu nhất quán giữa các sự kiện
Sử dụng các tính năng thử lại và xử lý lỗi của Inngest
Khắc phục sự cố
Chức năng không được kích hoạt
Xác minh URL webhook là chính xác và đang hoạt động
Kiểm tra rằng chức năng Inngest đã được triển khai và đang hoạt động
Đảm bảo tên sự kiện khớp với các kích hoạt chức năng
Xem nhật ký chức năng Inngest để tìm lỗi
Dữ liệu không được nhận đúng cách
Kiểm tra cấu trúc payload khớp với mong đợi của Inngest
Xác minh tên sự kiện được định dạng đúng
Đảm bảo tất cả các trường cần thiết đều được bao gồm
Kiểm tra với công cụ kiểm tra webhook của Inngest