Giới thiệu
Tự động gửi email giao dịch cho xác nhận thanh toán, cập nhật đăng ký và thông báo quan trọng bằng cách sử dụng SendGrid. Kích hoạt email cá nhân hóa dựa trên các sự kiện thanh toán với nội dung động và mẫu chuyên nghiệp.
Tích hợp này yêu cầu một API Key của SendGrid với quyền Gửi Mail.
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 SendGrid
Chọn thẻ tích hợp SendGrid .
Nhập API Key
Cung cấp API Key của SendGrid trong cấu hình.
Cấu hình Biến đổi
Chỉnh sửa mã biến đổi để định dạng email cho API Gửi Mail của SendGrid.
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 việc gửi email.
Xong!
🎉 Các sự kiện thanh toán bây giờ sẽ tự động kích hoạt email giao dịch qua SendGrid.
Ví dụ Mã Biến đổi
Email Xác nhận Thanh toán
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.sendgrid.com/v3/mail/send" ;
webhook . payload = {
personalizations: [
{
to: [{ email: p . customer . email }],
dynamic_template_data: {
customer_name: p . customer . name ,
payment_amount: ( p . total_amount / 100 ). toFixed ( 2 ),
payment_id: p . payment_id ,
payment_date: new Date ( webhook . payload . timestamp ). toLocaleDateString (),
currency: p . currency || "USD"
}
}
],
from: {
email: "[email protected] " ,
name: "Your Company"
},
template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
}
return webhook ;
}
See all 26 lines
Email Chào mừng Đăng ký
function handler ( webhook ) {
if ( webhook . eventType === "subscription.active" ) {
const s = webhook . payload . data ;
webhook . url = "https://api.sendgrid.com/v3/mail/send" ;
webhook . payload = {
personalizations: [
{
to: [{ email: s . customer . email }],
dynamic_template_data: {
customer_name: s . customer . name ,
subscription_id: s . subscription_id ,
product_name: s . product_id ,
amount: ( s . recurring_pre_tax_amount / 100 ). toFixed ( 2 ),
frequency: s . payment_frequency_interval ,
next_billing: new Date ( s . next_billing_date ). toLocaleDateString ()
}
}
],
from: {
email: "[email protected] " ,
name: "Your Company"
},
template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
}
return webhook ;
}
See all 27 lines
Thông báo Thất bại Thanh toán
function handler ( webhook ) {
if ( webhook . eventType === "payment.failed" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.sendgrid.com/v3/mail/send" ;
webhook . payload = {
personalizations: [
{
to: [{ email: p . customer . email }],
dynamic_template_data: {
customer_name: p . customer . name ,
payment_amount: ( p . total_amount / 100 ). toFixed ( 2 ),
error_message: p . error_message || "Payment processing failed" ,
payment_id: p . payment_id ,
retry_link: `https://yourdomain.com/retry-payment/ ${ p . payment_id } `
}
}
],
from: {
email: "[email protected] " ,
name: "Your Company Support"
},
template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
}
return webhook ;
}
See all 26 lines
Mẹo
Sử dụng mẫu động của SendGrid cho nội dung cá nhân hóa
Bao gồm dữ liệu thanh toán liên quan trong các biến mẫu
Đặt địa chỉ gửi và tên người gửi phù hợp
Sử dụng ID mẫu để định dạng email nhất quán
Bao gồm liên kết hủy đăng ký để tuân thủ
Khắc phục sự cố
Xác minh API Key có quyền Gửi Mail
Kiểm tra rằng ID mẫu là hợp lệ và đang hoạt động
Đảm bảo địa chỉ email người nhận là hợp lệ
Xem xét giới hạn và hạn ngạch gửi của SendGrid
Xác thực cấu trúc JSON khớp với định dạng API của SendGrid
Kiểm tra rằng tất cả các trường bắt buộc đều có mặt
Đảm bảo các biến dữ liệu mẫu được định dạng đúng cách
Xác minh rằng các địa chỉ email gửi đã được xác minh trong SendGrid