Confermare rapidamente la ricezione di un webhook

Verifica la firma del webhook dosya sul corpo originale, salva l’evento in modo persistente e restituisci una risposta 2xx entro il limite di dieci secondi.

Ultima revisione

Gli screenshot mostrano l’interfaccia in inglese.

dosya considera riuscita qualsiasi risposta HTTP 2xx. Il destinatario ha dieci secondi per verificare e confermare la richiesta: salva quindi i dati in modo persistente durante la richiesta e sposta il lavoro più lento a una fase successiva.

Quattro pannelli mostrano la verifica del timestamp entro 300 secondi e della firma sul corpo originale, il salvataggio persistente, la risposta 2xx entro dieci secondi e Success.
I quattro pannelli mostrano la verifica del timestamp entro 300 secondi e della firma sul corpo originale, il salvataggio persistente, la risposta 2xx entro dieci secondi e la conferma Success. Apri lo screenshot a dimensione intera.

Passaggi

  1. Leggi i byte intatti della richiesta e l’intestazione X-Dosya-Signature prima di analizzare il JSON. Separa i valori t=<unix-seconds>,v1=<hex> e calcola HMAC-SHA256 con il segreto di firma dell’endpoint su ${t}.${rawBody}.
  2. Interpreta t come intero sicuro e rifiutalo se differisce di oltre 300 secondi dall’orologio del destinatario. Confronta poi il digest calcolato con v1 mediante un’operazione a tempo costante. Una firma scaduta, malformata o non corrispondente non deve mettere il payload in coda.
  3. Registra X-Dosya-Event-Id, X-Dosya-Delivery-Id e X-Dosya-Event-Type, poi salva in modo persistente l’evento originale verificato e il record di idempotenza del suo ID evento.
  4. Restituisci una risposta 2xx vuota o priva di dati sensibili appena la transazione è confermata. Completa chiamate API successive, elaborazione multimediale, notifiche e altri effetti lenti in un worker dopo la conferma.
  5. Mantieni l’intera richiesta sotto i dieci secondi. Un timeout, un errore di rete, un 3xx rimasto dopo l’unico reindirizzamento consentito da dosya o qualsiasi stato diverso da 2xx viene registrato come tentativo non riuscito.
  6. In Integrazioni → Webhook, apri Invii e verifica Completato, lo stato della risposta e un tentativo. dosya conserva fino a 500 caratteri della risposta: non ripetere mai segreti o payload privati nel corpo di conferma.

Dopo un primo tentativo non riuscito, i nuovi tentativi sono previsti dopo 30 secondi, 2 minuti, 10 minuti, 1 ora e 6 ore. La scansione dei tentativi avviene ogni dieci minuti, quindi un tentativo può avvenire dopo il primo momento previsto.

Riferimento per la conferma rapida di un webhook: pagina panoramica REST API di dosya con link Get API Key e View SDKs.
Riferimento per la conferma rapida di un webhook: pagina panoramica REST API di dosya con link Get API Key e View SDKs. Apri lo screenshot a dimensione intera.

Risultato previsto

Un invio valido viene accettato una sola volta in modo persistente e riceve una risposta 2xx entro dieci secondi. Invii recenti mostra Completato, mentre l’elaborazione lenta prosegue indipendentemente senza provocare nuovi tentativi.

Le richieste valide scadono. Sposta il lavoro dopo la conferma della coda persistente e controlla i timeout del proxy o della piattaforma; aumentare il lavoro del destinatario non cambia il limite di dieci secondi di dosya.

La firma è diversa. Calcola l’hash sui byte esatti ricevuti, inclusi gli spazi, invece che sul JSON serializzato di nuovo, e verifica con il segreto attuale dell’endpoint.

Guide correlate

Ti è stata utile?

Caricamento delle valutazioni…

Quando voti, salviamo un cookie tecnico per un massimo di 180 giorni, così puoi cambiare la tua risposta.

Domande e risposte

Fai una domanda sui passaggi di questa guida. Le domande vengono revisionate prima della pubblicazione.

Non inserire dati dell’account, credenziali o file privati nelle domande pubbliche. Usa l’assistenza privata in questi casi.

Caricamento delle domande…

    Accedi al tuo account dosya per fare una domanda.

    Controlla il risultato prima di riprovare

    Usa questi controlli quando devi verificare il risultato di un’attività.