Introduzione
Esegui uno script o un flusso Windmill ogni volta che si verifica un evento di Dodo Payments. Usalo per aggiornare un database, sincronizzare record con un altro sistema, inviare notifiche o eseguire la tua logica aziendale nel codice.Il connettore Windmill invia ogni evento all’URL webhook di uno script o flusso Windmill. Ti servono uno script o flusso distribuito, un token Windmill che possa eseguirlo e l’accesso a Developer → Webhooks nella dashboard di Dodo Payments.
Iniziare
1
Open the Webhook Section
Nella dashboard di Dodo Payments, vai a Developer → Webhooks e fai clic su Add endpoint.

2
Select Windmill
In Integration, seleziona Windmill. La dashboard carica il codice di trasformazione Windmill e mostra i passaggi di configurazione nel pannello How to connect Windmill.
3
Copy the Windmill Webhook URL
In Windmill, apri lo script o il flusso che deve gestire gli eventi. Nella scheda Triggers, apri Webhooks e copia l’URL webhook asincrono (UUID/Async). Quindi crea un token specifico per webhook per lo script o il flusso e copialo. Questo token può eseguire solo quello script o flusso.
4
Paste Webhook URL
Incolla l’URL webhook Windmill in Endpoint URL. L’URL deve usare HTTPS, quindi un’istanza Windmill self-hosted deve avere un indirizzo HTTPS pubblico. Il connettore Windmill non include un campo per la API key, quindi devi aggiungere il token dopo aver creato l’endpoint.
5
Select Events
Subscribed events elenca gli eventi supportati dal connettore Windmill. Mantieni solo gli eventi gestiti dal tuo script o flusso.
6
Configure Transformation
In Transformation code, modifica l’handler in modo che le chiavi di primo livello del payload corrispondano agli input del tuo script o flusso. Parti dagli esempi.
7
Test & Create
In Test this code, seleziona un tipo di evento e fai clic su Simulate per visualizzare un’anteprima del payload. Quindi fai clic su Create endpoint.
8
Add the Windmill Token
Subito dopo aver creato l’endpoint, apri la scheda Advanced. In Custom headers, fai clic su Add header. Inserisci
Authorization come nome e Bearer, uno spazio e il tuo token come valore. Quindi fai clic su Save. Finché non salvi l’header, Windmill rifiuta le consegne e Dodo Payments le ritenta secondo il programma dei retry.Windmill accetta il token anche in un parametro di query token alla fine dell’URL. Windmill consiglia l’header, perché chiunque possa visualizzare un URL con un token può utilizzare il token.9
Done
Gli eventi sottoscritti ora avviano le esecuzioni del tuo script o flusso. Per inviare un evento di test, apri la scheda Testing dell’endpoint, seleziona un tipo di evento e fai clic su Send example. In Windmill, l’esecuzione viene visualizzata nella pagina Runs con il trigger
Webhook.Esempi di codice di trasformazione
Ogni handler sostituiscewebhook.payload con un oggetto piatto e mantiene webhook.url, il tuo URL webhook Windmill. Windmill passa ogni chiave di primo livello all’input dello script o flusso con lo stesso nome, quindi uno script per il primo esempio dichiara input come event_type, payment_id e amount. Gli importi di Dodo Payments sono espressi nell’unità più piccola della valuta, quindi gli esempi dividono per 100 e inviano il risultato come stringa, ad esempio "25.00". Per le valute senza decimali, come JPY e KRW, usa l’importo così com’è.
Payload del workflow di base
Invia i dettagli di un pagamento riuscito:basic_workflow.js
Handler del workflow per gli abbonamenti
Invia un eventosubscription_started o subscription_cancelled quando un abbonamento diventa attivo o viene annullato:
subscription_workflow.js
Handler del workflow per le contestazioni
Invia ogni evento di contestazione, impostandourgent su true quando si apre una contestazione:
dispute_workflow.js
Casi d’uso comuni di Windmill
Database Operations
Database Operations
- Aggiornare i record dei clienti in PostgreSQL o MySQL
- Registrare gli eventi di pagamento in un data warehouse
- Sincronizzare i dati con sistemi esterni
- Aggiornare i livelli di inventario
- Monitorare le metriche di analisi
Business Logic
Business Logic
- Calcolare le metriche dei ricavi
- Elaborare rimborsi e rettifiche
- Gestire le modifiche del ciclo di vita degli abbonamenti
- Generare report ed esportazioni
- Convalidare i dati di pagamento
External Integrations
External Integrations
- Inviare dati alle piattaforme di analisi
- Aggiornare i sistemi CRM
- Avviare campagne email
- Creare eventi del calendario
- Inviare notifiche SMS
Suggerimenti
- Assegna ai payload key i nomi degli input dello script o flusso, perché Windmill associa ogni chiave di primo livello all’input con lo stesso nome.
- Usa gli stessi nomi dei campi tra gli eventi, così un unico script può gestire diversi tipi di evento.
- Includi il tipo di evento e
timestamp. Gli eventi possono arrivare fuori ordine etimestampconsente allo script di ordinarli. - Usa l’URL webhook asincrono. L’URL sincrono attende il completamento dell’esecuzione e un’esecuzione che supera il timeout della consegna viene considerata una consegna non riuscita, che Dodo Payments ritenta.
- Assicurati che lo script possa essere eseguito due volte per lo stesso evento, perché i retry possono consegnare un evento più di una volta.
- Per ignorare un evento nel codice, imposta
webhook.cancel = trueprima di restituire il webhook. I log registrano una consegna ignorata come riuscita. - Usa gli error handlers di Windmill per ricevere una notifica quando un’esecuzione non riesce.
Risoluzione dei problemi
Workflows Not Triggering
Workflows Not Triggering
- Verifica che Endpoint URL sia l’URL webhook del tuo script o flusso e che l’endpoint sia abilitato.
- Verifica che l’header
AuthorizationcontengaBearere un token valido. Un token specifico per webhook esegue solo il proprio script o flusso. - Verifica che lo script o il flusso sia distribuito. Il webhook esegue l’ultima versione distribuita, non una bozza.
- Apri la scheda Logs in Developer → Webhooks per visualizzare la risposta di Windmill a ogni consegna.
Data Processing Issues
Data Processing Issues
- Verifica che le chiavi di primo livello del payload corrispondano per nome agli input dello script o flusso.
- Verifica che ogni valore corrisponda al tipo del relativo input. Gli esempi inviano gli importi come stringhe.
- Controlla l’esecuzione nella pagina Runs di Windmill, filtrando per il trigger
Webhook. L’URL asincrono risponde non appena Windmill mette in coda l’esecuzione, quindi i log di Dodo Payments mostrano una consegna riuscita anche quando l’esecuzione non riesce. - Esegui lo script o il flusso in Windmill con un payload proveniente da Simulate.