Introduktion
Kör ett Windmill-skript eller flöde varje gång en Dodo Payments-händelse inträffar. Använd det för att uppdatera en databas, synkronisera poster med ett annat system, skicka aviseringar eller köra din egen affärslogik i kod.Windmill-anslutningen skickar varje händelse till webhook-URL:en för ett Windmill-skript eller flöde. Du behöver ett distribuerat skript eller flöde, en Windmill-token som kan köra det och åtkomst till Developer → Webhooks i Dodo Payments-dashboarden.
Komma igång
1
Open the Webhook Section
I Dodo Payments-instrumentpanelen går du till Developer → Webhooks och klickar på Add endpoint.

2
Select Windmill
Under Integration väljer du Windmill. Dashboarden läser in Windmills transformationskod och visar konfigurationssteg i panelen How to connect Windmill.
3
Copy the Windmill Webhook URL
Öppna skriptet eller flödet som ska hantera händelser i Windmill. Öppna Webhooks på fliken Triggers och kopiera den asynkrona webhook-URL:en (UUID/Async). Skapa sedan en tokenspecifik för skriptet eller flödet och kopiera den. Denna token kan endast köra det skriptet eller flödet.
4
Paste Webhook URL
Klistra in Windmills webhook-URL i Endpoint URL. URL:en måste använda HTTPS, så en självhostad Windmill-instans behöver en offentlig HTTPS-adress. Windmill-anslutningen har inget fält för API-nyckel, så du lägger till token efter att du har skapat endpointen.
5
Select Events
Subscribed events listar de händelser som Windmill-anslutningen stöder. Behåll endast de händelser som ditt skript eller flöde hanterar.
6
Configure Transformation
Under Transformation code redigerar du hanteraren så att nyttolastens nycklar på toppnivå motsvarar indata till ditt skript eller flöde. Börja med exemplen.
7
Test & Create
Under Test this code väljer du en händelsetyp och klickar på Simulate för att förhandsgranska nyttolasten. Klicka sedan på Create endpoint.
8
Add the Windmill Token
Direkt efter att du har skapat endpointen öppnar du fliken Advanced. Under Custom headers klickar du på Add header. Ange
Authorization som namn och Bearer, ett mellanslag och din token som värde. Klicka sedan på Save. Fram tills du sparar headern avvisar Windmill leveranser och Dodo Payments försöker skicka dem igen enligt schemat för nya försök.Windmill accepterar även token i en token-frågeparameter i slutet av URL:en. Windmill rekommenderar headern, eftersom alla som kan se en URL med en token kan använda token.9
Done
Subscribed events startar nu körningar av ditt skript eller flöde. Om du vill skicka en testhändelse öppnar du endpointens flik Testing, väljer en händelsetyp och klickar på Send example. I Windmill visas körningen på sidan Runs med utlösaren
Webhook.Exempel på transformationskod
Varje hanterare ersätterwebhook.payload med ett platt objekt och behåller webhook.url, din Windmill-webhook-URL. Windmill skickar varje nyckel på toppnivå till indatafältet i skriptet eller flödet med samma namn, så ett skript för det första exemplet deklarerar indata som event_type, payment_id och amount. Belopp i Dodo Payments anges i den minsta valutaenheten, så exemplen dividerar med 100 och skickar resultatet som en sträng, till exempel "25.00". För valutor utan decimaler, som JPY och KRW, använder du beloppet som det är.
Grundläggande arbetsflödesnyttolast
Skicka information om en lyckad betalning:basic_workflow.js
Hanterare för prenumerationsarbetsflöde
Skicka ensubscription_started- eller subscription_cancelled-händelse när en prenumeration aktiveras eller avslutas:
subscription_workflow.js
Hanterare för tvistarbetsflöde
Skicka varje tvistrelaterad händelse, medurgent inställd på true när en tvist öppnas:
dispute_workflow.js
Vanliga användningsområden för Windmill
Database Operations
Database Operations
- Uppdatera kundposter i PostgreSQL eller MySQL
- Logga betalningshändelser i ett datalager
- Synkronisera data med externa system
- Uppdatera lagernivåer
- Spåra analysmått
Business Logic
Business Logic
- Beräkna intäktsmått
- Behandla återbetalningar och justeringar
- Hantera ändringar i prenumerationers livscykel
- Generera rapporter och exporter
- Validera betalningsdata
External Integrations
External Integrations
- Skicka data till analysplattformar
- Uppdatera CRM-system
- Starta e-postkampanjer
- Skapa kalenderhändelser
- Skicka SMS-aviseringar
Tips
- Namnge nyttolastens nycklar efter indatafälten i ditt skript eller flöde, eftersom Windmill mappar varje nyckel på toppnivå till indatafältet med samma namn.
- Använd samma fältnamn för olika händelser, så att ett skript kan hantera flera händelsetyper.
- Inkludera händelsetypen och
timestamp. Händelser kan komma i fel ordning, ochtimestampgör att skriptet kan ordna dem. - Använd den asynkrona webhook-URL:en. Den synkrona URL:en väntar på att körningen ska slutföras, och en körning som överskrider leveransens timeout räknas som en misslyckad leverans, som Dodo Payments försöker skicka igen.
- Se till att skriptet kan köras två gånger för samma händelse utan problem, eftersom nya försök kan leverera en händelse mer än en gång.
- Om du vill hoppa över en händelse i koden anger du
webhook.cancel = trueinnan du returnerar webhooken. Loggarna registrerar en överhoppad leverans som lyckad. - Använd Windmills felhanterare för att få aviseringar när en körning misslyckas.
Felsökning
Workflows Not Triggering
Workflows Not Triggering
- Kontrollera att Endpoint URL är webhook-URL:en för ditt skript eller flöde och att endpointen är aktiverad.
- Kontrollera att headern
AuthorizationinnehållerBeareroch en giltig token. En tokenspecifik webhook kan endast köra sitt eget skript eller flöde. - Kontrollera att skriptet eller flödet är distribuerat. Webhooken kör den senast distribuerade versionen, inte ett utkast.
- Öppna fliken Logs i Developer → Webhooks för att se Windmills svar på varje leverans.
Data Processing Issues
Data Processing Issues
- Kontrollera att nyttolastens nycklar på toppnivå matchar skriptets eller flödets indatafält med avseende på namn.
- Kontrollera att varje värde matchar indatatypen. Exemplen skickar belopp som strängar.
- Kontrollera körningen på Windmills sida Runs, filtrerad efter utlösaren
Webhook. Den asynkrona URL:en svarar så snart Windmill köar körningen, så Dodo Payments-loggarna visar en lyckad leverans även när körningen misslyckas. - Kör skriptet eller flödet i Windmill med en nyttolast från Simulate.