VietBilling

Webhooks

Billing state chỉ có giá trị khi webhook được xác thực.

Nhận các sự kiện subscription, kiểm tra chữ ký, deduplicate theo event_id và trả 2xx sau khi xử lý an toàn.

Bắt đầu miễn phí

Kết quả

Entitlement không phụ thuộc vào redirect từ browser của khách hàng.

01

Xác thực

Kiểm tra chữ ký bằng signing secret đã lưu một lần.

02

Deduplicate

Lưu event_id trước khi thay đổi entitlement.

03

Áp dụng trạng thái

Xử lý created, updated và canceled theo subscription_id.

Tích hợp từ backend

API key là secret của server. Không đặt key trong browser hoặc mobile app.

if (!verifySignature(rawBody, signature, signingSecret)) {
  return new Response("invalid signature", { status: 401 })
}
if (await events.exists(payload.event_id)) return new Response("ok")
await subscriptions.apply(payload)
return new Response("ok")

FAQ

Webhook có được retry không?

Có. Endpoint phải idempotent và trả 2xx cho event đã xử lý.

Có nên tin success_url không?

Không dùng browser redirect làm bằng chứng thanh toán; hãy xác thực webhook hoặc đối soát bằng API.