Zonos entegrasyonunuz için gerçek zamanlı olay bildirimleri alın.
Web kancaları, Zonos'un belirli olaylar meydana geldiğinde dış sistemlerinizi proaktif olarak bilgilendirmesinin bir yoludur. Abone olunan olay meydana geldiğinde, Zonos belirttiğiniz web kancası URL'sine HTTP POST isteği gönderecektir. İstek gövdesi olay ayrıntılarını içerecek ve sisteminizin olayı programlı olarak işlemesine izin verecektir.
Web kancaları Zonos'u diğer platformlarla entegre etmek, otomatik iş akışlarını tetiklemek ve verileri sistemler arasında gerçek zamanlı olarak senkronize tutmak için yararlıdır. Örneğin, web kancalarını aşağıdaki amaçlarla kullanabilirsiniz:
Zonos'ta bir sipariş oluşturulduğunda sipariş yönetim sisteminizi güncelleyin
Gönderim iptal edildiğinde yerine getirme sağlayıcınızı bilgilendirin
Uluslararası siparişlerin durum değişikliklerini denetim amaçlı kaydedin
Tüm kullanılabilir web kancası türleri WebhookType numaralandırmasında yer almaktadır. Her biri için örnek yükler Olay Türleri kılavuzunda bulunabilir.
Önemli: Web kancasını oluşturduğunuzda secret değerini kaydedin — bu değer yalnızca burada döndürülür ve web kancası imzalarını doğrulamak için gerekli olacaktır. Aşağıdaki Web kancası imzalarını doğrulama bölümüne bakın.
Zonos'un gönderdiği her web kancası isteği, isteğin gerçekten Zonos'tan geldiğini ve yükün (payload) iletim sırasında değiştirilmediğini doğrulamanızı sağlayan bir zonos-signature başlığı içerir.
hmac — ham JSON istek gövdesinin, web kancanızın gizli anahtarı anahtar olarak kullanılarak hesaplanan ve Base64 ile kodlanan HMAC-SHA256 imzası.
Bir isteği doğrulamak için:
zonos-signature başlığından timestamp ve hmac değerlerini ayrıştırın.
Web kancasını oluştururken aldığınız gizli anahtarı kullanarak, ham ve ayrıştırılmamış istek gövdesi üzerinden kendi HMAC-SHA256 imzanızı hesaplayın.
Hesapladığınız imzayı sabit zamanlı bir karşılaştırma kullanarak hmac değeriyle karşılaştırın ve eşleşmezlerse isteği reddedin.
Yakalanan bir isteğin tekrar oynatılmasına (replay) karşı korunmak için isteğe bağlı olarak timestamp değeri birkaç dakikadan daha eski olan istekleri reddedebilirsiniz. Zonos, teslimat için herhangi bir zaman penceresi zorunlu kılmaz; bu nedenle bu kontrol size bağlıdır.
Web Kancaları
Web kancaları ile olayları dinleyin
Zonos entegrasyonunuz için gerçek zamanlı olay bildirimleri alın.
Web kancaları, Zonos'un belirli olaylar meydana geldiğinde dış sistemlerinizi proaktif olarak bilgilendirmesinin bir yoludur. Abone olunan olay meydana geldiğinde, Zonos belirttiğiniz web kancası URL'sine HTTP POST isteği gönderecektir. İstek gövdesi olay ayrıntılarını içerecek ve sisteminizin olayı programlı olarak işlemesine izin verecektir.
Web kancaları Zonos'u diğer platformlarla entegre etmek, otomatik iş akışlarını tetiklemek ve verileri sistemler arasında gerçek zamanlı olarak senkronize tutmak için yararlıdır. Örneğin, web kancalarını aşağıdaki amaçlarla kullanabilirsiniz:
Web kancası türleri
Tüm kullanılabilir web kancası türleri
WebhookTypenumaralandırmasında yer almaktadır. Her biri için örnek yükler Olay Türleri kılavuzunda bulunabilir.Web kancaları oluşturma
API aracılığıyla web kancası oluşturmak için:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Web kancası ayrıntılarını düzenleyin
API aracılığıyla mevcut bir web kancasını düzenlemek için:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Web kancası imzalarını doğrulama
Zonos'un gönderdiği her web kancası isteği, isteğin gerçekten Zonos'tan geldiğini ve yükün (payload) iletim sırasında değiştirilmediğini doğrulamanızı sağlayan bir
zonos-signaturebaşlığı içerir.Başlık değeri şu biçimdedir:
timestamp— isteğin imzalandığı zaman, Unix epoch milisaniye cinsinden.hmac— ham JSON istek gövdesinin, web kancanızın gizli anahtarı anahtar olarak kullanılarak hesaplanan ve Base64 ile kodlanan HMAC-SHA256 imzası.Bir isteği doğrulamak için:
zonos-signaturebaşlığındantimestampvehmacdeğerlerini ayrıştırın.hmacdeğeriyle karşılaştırın ve eşleşmezlerse isteği reddedin.timestampdeğeri birkaç dakikadan daha eski olan istekleri reddedebilirsiniz. Zonos, teslimat için herhangi bir zaman penceresi zorunlu kılmaz; bu nedenle bu kontrol size bağlıdır.const crypto = require("crypto");function verifyZonosWebhook(rawBody, signatureHeader, secret) {const [timestampPart, hmacPart] = signatureHeader.split(",");const receivedHmac = hmacPart.split("=")[1];const expectedHmac = crypto.createHmac("sha256", secret).update(rawBody).digest("base64");const receivedBuffer = Buffer.from(receivedHmac);const expectedBuffer = Buffer.from(expectedHmac);if (receivedBuffer.length !== expectedBuffer.length) {return false;}return crypto.timingSafeEqual(receivedBuffer, expectedBuffer);}Web kancası günlüklerini görüntüleyin
API aracılığıyla web kancası günlüklerini görüntülemek için:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Bu sayfa faydalı mıydı?