Mutazioni sicure per impostazione predefinita
Alcune mutazioni sono naturalmente idempotenti perché eseguono un upsert basato su un identificatore stabile che fornisci tu. Quando le chiami con lo stesso input, il risultato è lo stesso: non c'è il rischio di creare duplicati.
- Mutazioni che accettano un identificatore univoco fornito dal commerciante (ad esempio, un
externalIddell'ordine) restituiranno il record esistente in una chiamata ripetuta anziché crearne uno nuovo. - È sempre sicuro riprovare le operazioni di sola lettura (query).
Quando puoi allegare il tuo identificatore stabile alla risorsa che stai creando, preferisci quel percorso.
Modelli per mutazioni che non sono naturalmente idempotenti
Per le mutazioni che creano risorse senza una chiave fornita dal commerciante, trattale come al massimo una volta dalla tua parte:
- Salva la richiesta prima di inviarla. Scrivi una riga nel tuo database (status
pending) prima della chiamata di rete. - Invia la mutazione. In caso di successo, registra l'ID della risorsa restituita rispetto alla riga in sospeso (status
committed). - In caso di errore di rete, non riprovare alla cieca. Interroga il grafico Zonos per determinare se la risorsa è stata creata (ad esempio, elencando le risorse create negli ultimi minuti per il tuo account o eseguendo una query per una risorsa correlata che puoi correlare). Riprova solo se puoi confermare che la risorsa non è presente.
- Utilizza un vincolo univoco nel tuo database su qualunque chiave aziendale rappresenti la richiesta, in modo che un nuovo tentativo duplicato dalla tua applicazione non possa essere inviato due volte.
La consegna del webhook avviene almeno una volta
Quando utilizzi i webhook Zonos, progetta i gestori affinché siano idempotenti: lo stesso evento può essere consegnato più di una volta. Deduplica in base all'ID evento. Vedere Webhook per il campo ID evento.
Dove si sta dirigendo la piattaforma
La piattaforma sottostante esegue già flussi di chiavi di idempotenza in produzione per i nuovi tentativi di fatturazione: la chiave definisce l'ambito di un tentativo di ripetizione e impedisce chiamate duplicate al processore di pagamento. Stiamo lavorando per esporre lo stesso modello come argomento opzionale idempotencyKey nelle mutazioni di creazione rivolte al cliente. Una volta fornito, il grafico restituirà la risposta originale per qualsiasi chiamata successiva con la stessa chiave all'interno di una finestra di conservazione. Questa pagina verrà aggiornata quando questa funzionalità sarà disponibile a tutti.
Se le chiavi di idempotenza standardizzate sulle mutazioni rivolte al cliente bloccano la tua integrazione, contattare l'assistenza.
Stato
Il supporto della chiave di idempotenza oggi è parziale. Mutazioni di tentativi interni selezionati, ad esempio i flussi di tentativi di fatturazione degli ordini e di fatturazione dei rimborsi, accettano già una chiave di idempotenza e la utilizzano per deduplicare le chiamate del processore di pagamento a valle. Non esiste ancora un argomento
idempotencyKeystandardizzato in tutte le mutazioni di creazione rivolte al cliente sul grafico Zonos; questo è sulla tabella di marcia. Finché non sarà disponibile, utilizza i modelli seguenti per mantenere le mutazioni sicure da riprovare.