Webhook Eventi e avvisi di liquidazione
Tipi di eventi Webhook del commerciante, identità di idempotenza, campi di avviso di liquidazione ed esempi di risultati dei fondi.
Segue questa pagina Agent Java SDK WEBHOOKS.md al commit fa6c7b6. Questo è un aggiornamento solo della documentazione; non è stato rilasciato alcun nuovo artefatto SDK contenente metodi di helper di avviso.
Tutti e quattro i tipi di evento utilizzano la richiamata singola configurata del commerciante URL (agents.webhook_url). Dispaccio sul corpo event; non è richiesto alcun avviso separato URL. Gli esempi mostrano la struttura del carico utile e non devono essere utilizzati per inserire dati in un ambiente di test.
Eventi e idempotenza
L’evento di avviso del commerciante è liquidation.warning; l’utente WebSocket data.event rimane LIQUIDATION_WARNING. Mantieni i due canali distinti.
Notifiche storiche del commerciante utilizzate LIQUIDATION_WARNING. I payload congelati mantengono il corpo originale durante i tentativi, quindi i ricevitori devono riconoscere entrambi i nomi. Se i record aziendali esistenti utilizzano un prefisso della chiave di avviso in maiuscolo, conservare la chiave originale o controllare entrambe le chiavi durante la migrazione per evitare di elaborare nuovamente la notifica.
L’attuale WebhookVerifier.idempotencyKey estrae solo orderType:orderId:targetStatus per gli eventi dei fondi e restituisce una stringa vuota per i payload di avviso. Nessun nuovo artefatto SDK contenente metodi di helper di avviso è stato rilasciato con questo aggiornamento della documentazione. Continua a utilizzare il metodo verify esistente per verificare il corpo dell’avviso non elaborato. Dopo i controlli della firma e della proprietà, il codice aziendale del commerciante deve riconoscere entrambi i nomi degli eventi, convalidare che notificationId è una stringa con intero decimale positivo e costruire liquidation.warning:<notificationId>. Non utilizzare mai una chiave di deduplicazione vuota né richiedere avvisi per contenere i campi degli ordini di fondi.
Mantieni la deduplicazione nell’ambito del commerciante e del environment e affidala atomicamente all’elaborazione aziendale. Le notifiche FIRST / UPGRADE / REMINDER con valori notificationId diversi sono indipendenti; non scartarli raggruppandoli per utente, episodio o eventType. Una chiave vuota significa che non è stato possibile estrarre un’identità valida. Il SDK restituisce solo una chiave di supporto; non conserva i record né esegue elaborazioni aziendali. Registrare la stessa identità con un corpo diverso come conflitto; non sovrascrivere il corpo elaborato.
Campi di avviso di liquidazione ed esempio
Esempio di risultato del trasferimento
Le richiamate dei fondi mantengono i tipi esistenti: orderId e agentId sono JSON numeri; amount e platformUserId sono stringhe. Non applicare la convenzione della stringa di avviso agentId ai callback dei fondi. Leggi numeri interi di grandi dimensioni senza perdita di precisione utilizzando tipi interi/decimali. completedAt è UTC RFC3339; ts è Unix secondi.
Esempio di risultato inverso
Esempio di ordine dei fondi in stato morto
Questi esempi mostrano solo il protocollo. Per FAILED, rejectCode, rejectMessage e failReason riflettono il rifiuto effettivo. Il solo nome dell’evento non dimostra che i fondi siano stati accreditati.