Nhận thông báo theo thời gian thực khi các sự kiện xảy ra trong Dodo Payments. Tự động hóa quy trình làm việc và giữ cho hệ thống của bạn đồng bộ với việc giao hàng sự kiện ngay lập tức.
Webhooks cung cấp thông báo theo thời gian thực khi các sự kiện cụ thể xảy ra trong tài khoản Dodo Payments của bạn. Sử dụng webhooks để tự động hóa quy trình làm việc, cập nhật cơ sở dữ liệu của bạn, gửi thông báo và giữ cho hệ thống của bạn đồng bộ.
Triển khai webhook của chúng tôi tuân theo thông số kỹ thuật Standard Webhooks, đảm bảo tính tương thích với các thực tiễn tốt nhất trong ngành và các thư viện webhook hiện có.
Điều hướng đến Bảng điều khiển DodoPayments và đi đến Settings > Webhooks.
2
Tạo Điểm cuối Webhook
Nhấp vào Add Webhook để tạo một điểm cuối webhook mới.
3
Thêm URL Điểm cuối
Nhập URL nơi bạn muốn nhận các sự kiện webhook.
4
Chọn Sự kiện để Nhận
Chọn các sự kiện cụ thể mà điểm cuối webhook của bạn nên lắng nghe bằng cách chọn chúng từ danh sách sự kiện.
Chỉ các sự kiện đã chọn mới kích hoạt webhooks đến điểm cuối của bạn, giúp bạn tránh lưu lượng không cần thiết và xử lý.
5
Lấy Khóa Bí mật
Lấy Secret Key webhook của bạn từ trang cài đặt. Bạn sẽ sử dụng điều này để xác minh tính xác thực của các webhook đã nhận.
Giữ cho khóa bí mật webhook của bạn an toàn và không bao giờ tiết lộ nó trong mã phía khách hàng hoặc các kho công khai.
6
Xoay Khóa Bí mật (Tùy chọn)
Nếu cần, bạn có thể xoay khóa bí mật webhook của mình để tăng cường bảo mật. Nhấp vào nút Xoay Khóa trong cài đặt webhook của bạn.
Việc xoay khóa bí mật sẽ làm hết hạn và thay thế nó bằng một cái mới. Khóa cũ chỉ có giá trị trong 24 giờ tiếp theo. Sau đó, việc cố gắng xác minh bằng khóa cũ sẽ thất bại.
Sử dụng việc xoay khóa bí mật định kỳ hoặc ngay lập tức nếu bạn nghi ngờ rằng khóa hiện tại của bạn đã bị xâm phạm.
Giao diện hiển thị tất cả các sự kiện webhook có sẵn được tổ chức theo cấu trúc phân cấp. Các sự kiện được nhóm theo danh mục (ví dụ: dispute, payment, subscription).
2
Tìm kiếm và Lọc
Sử dụng thanh tìm kiếm để nhanh chóng tìm các sự kiện cụ thể bằng cách nhập tên sự kiện hoặc từ khóa.
3
Chọn Sự kiện
Đánh dấu các ô bên cạnh các sự kiện bạn muốn nhận. Bạn có thể:
Chọn các sự kiện con riêng lẻ (ví dụ: dispute.accepted, dispute.challenged)
Chọn các sự kiện cha để nhận tất cả các sự kiện con liên quan
Kết hợp và chọn các sự kiện cụ thể dựa trên nhu cầu của bạn
4
Xem Chi tiết Sự kiện
Di chuột qua biểu tượng thông tin (ⓘ) bên cạnh mỗi sự kiện để xem mô tả về khi sự kiện đó được kích hoạt.
5
Lưu Cấu hình
Nhấp vào Lưu để áp dụng các thay đổi của bạn, hoặc Hủy để bỏ qua các sửa đổi.
Nếu bạn bỏ chọn tất cả các sự kiện, điểm cuối webhook của bạn sẽ không nhận được bất kỳ thông báo nào. Hãy chắc chắn chọn ít nhất các sự kiện mà ứng dụng của bạn cần để hoạt động đúng cách.
Nếu việc giao hàng webhook thất bại, Dodo Payments sẽ tự động thử lại với độ trễ tăng dần để ngăn ngừa việc làm quá tải hệ thống của bạn.
Cố gắng
Độ trễ
Mô tả
1
Ngay lập tức
Cố gắng đầu tiên xảy ra ngay lập tức
2
5 giây
Cố gắng thứ hai sau một độ trễ ngắn
3
5 phút
Cố gắng thứ ba với độ trễ tăng lên
4
30 phút
Cố gắng thứ tư tiếp tục độ trễ
5
2 giờ
Cố gắng thứ năm với độ trễ kéo dài
6
5 giờ
Cố gắng thứ sáu với độ trễ lâu hơn
7
10 giờ
Cố gắng thứ bảy với độ trễ tối đa
8
10 giờ
Cố gắng cuối cùng - webhook được đánh dấu là thất bại nếu không thành công
Tối đa 8 lần thử lại cho mỗi sự kiện webhook. Ví dụ, nếu một webhook thất bại ba lần trước khi thành công, tổng thời gian giao hàng là khoảng 35 phút và 5 giây từ lần thử đầu tiên.
Sử dụng bảng điều khiển Dodo Payments để thử lại thủ công các tin nhắn riêng lẻ hoặc khôi phục hàng loạt tất cả các tin nhắn đã thất bại bất cứ lúc nào.
Các sự kiện webhook có thể đến không theo thứ tự do các lần thử lại hoặc điều kiện mạng. Thiết kế hệ thống của bạn để xử lý các sự kiện theo bất kỳ trình tự nào.
Bạn sẽ nhận được payload mới nhất tại thời điểm giao hàng, bất kể khi nào sự kiện webhook được phát ra ban đầu.
Mỗi yêu cầu webhook bao gồm một tiêu đề webhook-signature, một chữ ký HMAC SHA256 của payload webhook và dấu thời gian, được ký bằng khóa bí mật của bạn.
Triển khai idempotency bằng cách sử dụng tiêu đề webhook-id để xử lý an toàn cùng một sự kiện nhiều lần mà không có tác dụng phụ.
Bảo mật khóa bí mật webhook của bạn
Lưu trữ khóa bí mật webhook của bạn một cách an toàn bằng cách sử dụng các biến môi trường hoặc trình quản lý bí mật. Không bao giờ cam kết bí mật vào kiểm soát phiên bản.
Bạn có thể kiểm tra tích hợp webhook của mình trực tiếp từ bảng điều khiển Dodo Payments để đảm bảo điểm cuối của bạn hoạt động chính xác trước khi đưa vào sử dụng.
Dưới đây là một triển khai hoàn chỉnh Express.js cho việc xác minh và xử lý webhook:
Sao chép
import { Webhook } from "standardwebhooks";import express from "express";const app = express();app.use(express.json());const webhook = new Webhook(process.env.DODO_WEBHOOK_SECRET);app.post('/webhook/dodo-payments', async (req, res) => { try { // Extract webhook headers const webhookHeaders = { "webhook-id": req.headers["webhook-id"] as string, "webhook-signature": req.headers["webhook-signature"] as string, "webhook-timestamp": req.headers["webhook-timestamp"] as string, }; // Verify the webhook signature const payload = JSON.stringify(req.body); await webhook.verify(payload, webhookHeaders); // Acknowledge receipt immediately res.status(200).json({ received: true }); // Process webhook asynchronously processWebhookAsync(req.body).catch(console.error); } catch (error) { console.error('Webhook verification failed:', error); res.status(400).json({ error: 'Invalid signature' }); }});async function processWebhookAsync(data: any) { // Handle the webhook event based on type switch (data.type) { case 'payment.succeeded': await handlePaymentSucceeded(data); break; case 'subscription.created': await handleSubscriptionCreated(data); break; // Add more event handlers... }}
Kiểm tra kỹ lưỡng bộ xử lý webhook của bạn bằng cách sử dụng giao diện kiểm tra bảng điều khiển trước khi xử lý các sự kiện sản xuất. Điều này giúp xác định và sửa chữa các vấn đề sớm.
Thêm các tiêu đề HTTP tùy chỉnh vào tất cả các yêu cầu webhook gửi đến điểm cuối của bạn. Điều này hữu ích cho xác thực, định tuyến hoặc thêm siêu dữ liệu vào các yêu cầu webhook của bạn.
1
Thêm Tiêu đề Tùy chỉnh
Trong phần “Tiêu đề Tùy chỉnh”, nhập một Khóa và Giá trị cho tiêu đề tùy chỉnh của bạn.
2
Thêm Nhiều Tiêu đề
Nhấp vào nút + để thêm các tiêu đề tùy chỉnh bổ sung khi cần thiết.
3
Lưu Cấu hình
Các tiêu đề tùy chỉnh của bạn sẽ được bao gồm trong tất cả các yêu cầu webhook đến điểm cuối này.
Tab Nhật ký cung cấp cái nhìn toàn diện về trạng thái giao hàng webhook của bạn, cho phép bạn theo dõi, gỡ lỗi và quản lý các sự kiện webhook một cách hiệu quả.
Giữ thông tin về tình trạng webhook của bạn với các thông báo email tự động. Khi việc giao hàng webhook bắt đầu thất bại hoặc điểm cuối của bạn ngừng phản hồi, bạn sẽ nhận được cảnh báo qua email để nhanh chóng giải quyết các vấn đề và giữ cho các tích hợp của bạn hoạt động trơn tru.
Đi đến Bảng điều khiển Dodo Payments của bạn và điều hướng đến Bảng điều khiển → Webhooks → Cảnh báo.
2
Kích hoạt Thông báo qua Email
Bật Thông báo qua Email để bắt đầu nhận cảnh báo về các vấn đề giao hàng webhook.
3
Cấu hình Địa chỉ Email
Nhập địa chỉ email nơi bạn muốn nhận cảnh báo webhook. Chúng tôi sẽ gửi thông báo đến địa chỉ này khi một số sự kiện xảy ra với cài đặt webhook của bạn, chẳng hạn như các vấn đề giao hàng có thể ảnh hưởng đến các tích hợp của bạn.
Kích hoạt cảnh báo qua email để phát hiện sớm các vấn đề giao hàng webhook và duy trì các tích hợp đáng tin cậy. Bạn sẽ được thông báo khi các giao hàng thất bại hoặc điểm cuối của bạn trở nên không phản hồi.
Sẵn sàng triển khai bộ xử lý webhook của bạn vào sản xuất? Chúng tôi cung cấp các hướng dẫn cụ thể cho từng nền tảng để giúp bạn triển khai webhooks đến các nhà cung cấp đám mây phổ biến với các thực tiễn tốt nhất cho mỗi nền tảng.