Skip to main content

Introduzione

Collega Dodo Payments a GoHighLevel (GHL) per vendere dai tuoi funnel, siti web, email e SMS GHL e gestire gli ordini con l’automazione GHL. GHL è una piattaforma CRM e di marketing con funnel, siti web, email e SMS e automazione (Workflows). GHL non indica Dodo Payments come processore di pagamento integrato, quindi devi collegare i due servizi in uno dei tre modi disponibili. Scegline uno in base a quanto vuoi che il checkout sia integrato e a quanto codice puoi scrivere. Ogni approccio gestisce la gestione degli ordini nello stesso modo: Dodo Payments invia eventi webhook a un workflow GHL Inbound Webhook, che applica un tag al contatto, concede l’accesso e invia le conferme.

Scegli il tuo approccio

I tre approcci differiscono per il codice richiesto e per il punto in cui il cliente effettua il pagamento:
Se non conosci Dodo Payments, inizia con Approccio A (Payment Links). Non richiede codice e funziona per ogni utente GHL. Gli approcci B e C richiedono un backend che crei checkout sessions, quindi sono adatti ai team che hanno dimestichezza con il codice.

Prerequisiti

Prima di iniziare, ti servono:
  • Un account Dodo Payments con almeno un product.
  • Un account GoHighLevel con un funnel, un sito web o un workflow.
  • Accesso a Developer → Webhooks nella dashboard Dodo Payments e a Developer → API Keys se ti serve una chiave API.
  • Per gli approcci B e C: un piccolo backend o endpoint serverless che crei checkout sessions.
GHL richiede un connected domain per pubblicare un funnel. Durante la creazione, usa Preview del funnel per eseguire i test. In genere, il JavaScript personalizzato (approcci B e C) viene eseguito solo sulla pagina pubblicata su un dominio reale, non in Preview.

Gestione degli ordini con i Webhook (tutti gli approcci)

Il workflow webhook è il livello di automazione. Configuralo una volta e funzionerà con ogni approccio di checkout.
1

Create the Workflow

Nel tuo sub-account GHL, apri Automation nel menu a sinistra. Si apre nella scheda Workflows. Fai clic su Create workflow, quindi scegli Start from Scratch.
2

Add the Inbound Webhook Trigger

Nel builder, fai clic su Add new trigger. Nel pannello Add trigger, cerca webhook e seleziona Inbound webhook, elencato in Triggers → Events. Copia il Webhook URL generato.
3

Register the Webhook in Dodo Payments

Nella dashboard Dodo Payments, vai su Developer → Webhooks e fai clic su Add endpoint. Incolla l’URL del GHL Inbound Webhook in Endpoint URL e fai clic su Create endpoint. Fornisci quindi a GHL un payload di esempio da cui mappare i campi, come l’email del cliente, il prodotto, l’importo e lo stato. Esegui un acquisto di test oppure apri la scheda Testing dell’endpoint, seleziona un tipo di evento e fai clic su Send example.
4

Add Fulfillment Actions

Nel workflow GHL, aggiungi azioni per l’evento, come find/create contact by email, add a tag, grant course/membership access e send a confirmation email. Quindi Publish il workflow.
Dodo Payments elabora i pagamenti, quindi non compaiono nella scheda Payments di GHL. Registrali in GHL con il workflow webhook precedente. Concedi l’accesso dal webhook, non dal reindirizzamento del browser, perché un cliente potrebbe chiudere la scheda prima del completamento del reindirizzamento.
Aggiungi un payment link Dodo Payments a qualsiasi pulsante GHL, call to action del funnel, pulsante della pagina d’ordine, email o SMS. I clienti pagano tramite il checkout ospitato da Dodo Payments. Per sapere cosa supporta il checkout, consulta Checkout Features.
1

Create a Product and Copy Its Payment Link

Nella dashboard Dodo Payments, vai su Products e fai clic su Add Product. Imposta il name e il price, scegli one-time o subscription e salva il prodotto. Nella riga del prodotto, fai clic su Share, quindi su Copy payment link. Il link ha il formato https://checkout.dodopayments.com/buy/{product_id}.
2

Add the Link to Your GHL Button

Modifica il funnel o la pagina del sito e seleziona il Buy / Checkout button. Imposta l’azione su Open URL / Website e incolla il payment link.
3

Set a Success Page (Optional)

Per riportare i clienti al funnel dopo il pagamento, inserisci la pagina di ringraziamento GHL in Redirect URL nel pannello Share del prodotto prima di copiare il link. Il link la includerà quindi come parametro redirect_url.
I query parameter dei payment link possono precompilare e bloccare i dati del cliente oppure aggiungere il tracking. Ad esempio, passa un ID del funnel o dell’offerta come parametro INLINE_CODE_PLACEHOLDER_934480cfe4e9aac1_END e leggilo dal webhook. Consulta Static Payment Links per tutti i parametri.

Approccio B: Overlay Checkout (Codice personalizzato)

L’approccio B apre il checkout Dodo Payments come modal overlay sulla pagina GHL, utilizzando il Checkout SDK da una CDN. Richiede un backend che crei una checkout session e restituisca il valore checkoutUrl.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Questo passaggio è obbligatorio. L’SDK richiede l’URL di una checkout session e la creazione di una sessione richiede la tua secret API key. GHL ospita solo le pagine e non può effettuare questa chiamata server-side per te. Non chiamare mai la Create Checkout Session API dal browser, perché esporresti la tua secret key nel codice sorgente della pagina. Pertanto, l’overlay checkout e l’inline checkout non possono funzionare con il solo GHL: ti serve un backend sotto il tuo controllo che crei la sessione e restituisca solo l’URL.Qualsiasi piccolo backend è adatto: una funzione serverless (Cloudflare Workers, Vercel Functions, AWS Lambda, Supabase Edge Functions e servizi simili) oppure un endpoint su un server che già gestisci. La logica è la stessa su ogni piattaforma: ricevere la richiesta, chiamare l’API Dodo Payments con la tua secret key e restituire checkout_url.Esempio di logica dell’handler, da adattare alla tua piattaforma:
Salva la tua API key come secret nella variabile d’ambiente DODO_PAYMENTS_API_KEY sulla piattaforma su cui esegui il deployment e non inserirla mai nel codice. Consenti le richieste dal tuo dominio GHL (CORS) e servi l’endpoint da un dominio sotto il tuo controllo, ad esempio https://api.example.com/create-checkout. Quando passi alla modalità live, cambia l’URL in https://live.dodopayments.com/checkouts.
2

Add a Custom Code Element in the GHL Page Builder

Apri il passaggio del funnel o la pagina del sito nel page builder GHL, quindi:
  1. Fai clic sull’icona + in alto a sinistra del builder per aprire Quick Add.
  2. Seleziona Elements dall’elenco delle categorie a sinistra.
  3. Trova Custom Code (visualizzato anche come HTML) e trascinalo nella pagina.
  4. Incolla il codice seguente nell’editor del codice dell’elemento, quindi salva.
3

Publish and Test on Your Domain

Il JavaScript personalizzato viene eseguito sulla pagina pubblicata del tuo dominio collegato e potrebbe non essere eseguito in Preview. Pubblica la pagina, quindi fai clic su Pay Now per verificare che l’overlay si apra.

Approccio C: Inline (Embedded) Checkout

L’approccio C incorpora il modulo di checkout all’interno della pagina GHL, senza reindirizzamenti né popup. Utilizza lo stesso SDK con un elemento container in cui eseguire il mount. Come l’approccio B, richiede un backend per creare la sessione.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Questo passaggio è obbligatorio, come per l’overlay checkout. La creazione di una sessione richiede la tua secret API key, quindi deve avvenire su un server e GHL non può farlo autonomamente. Riutilizza l’endpoint backend della sezione Overlay Checkout precedente: una qualsiasi piccola funzione serverless o un server sotto il tuo controllo che chiami la Create Checkout Session API e restituisca { checkoutUrl }.
2

Add a Container and SDK via Custom Code

Nel page builder GHL:
  1. Fai clic sull’icona + in alto a sinistra del builder per aprire Quick Add.
  2. Seleziona Elements dall’elenco delle categorie a sinistra.
  3. Trova Custom Code (visualizzato anche come HTML) e trascinalo nella pagina nel punto in cui vuoi visualizzare il modulo di checkout.
  4. Incolla il codice seguente nell’editor del codice dell’elemento, quindi salva.
3

Verify Your Domain for Wallets (Apple Pay)

Per offrire Apple Pay nell’inline checkout, verifica il tuo dominio. Nella dashboard di Dodo Payments, vai su Settings → Payment Methods e fai clic su Manage domains nella riga Apple Pay. Scarica il file di associazione del dominio, ospitalo sul tuo dominio e registra il dominio. Apple Pay non è disponibile nell’overlay checkout (Approach B).Un dominio ospitato da GHL non può ospitare il file di associazione del dominio. Apple Pay nell’inline checkout richiede un dominio sotto il tuo controllo in grado di servire /.well-known/apple-developer-merchantid-domain-association. Nelle pagine ospitate da GHL, usa l’hosted checkout di Payment Links (Approach A) oppure non utilizzare Apple Pay.
L’inline checkout è l’opzione più complessa in GHL. Richiede codice personalizzato, un backend, una pagina pubblicata su un dominio reale e, per Apple Pay, la verifica del dominio. Se non ti serve un form completamente incorporato, usa invece Approach A o B.

Eventi da gestire

Sottoscrivi l’endpoint GHL agli eventi su cui agisce il tuo workflow. La tabella suggerisce un’azione GHL per ciascuno: Gli eventi di pagamento e abbonamento includono l’email del cliente in data.customer.email. Usa l’azione di GHL find/create contact by email per associare il pagamento al contatto corretto. Per ogni evento, consulta la Webhook Event Guide.

Test e messa in produzione

1

Test in Test Mode

Mantieni disattivato l’interruttore Live Mode nella barra laterale di Dodo Payments, così lavorerai in modalità test. Completa un acquisto con la carta di test 4242 4242 4242 4242 (scadenza 06/32, CVV 123) e verifica che il workflow GHL venga eseguito e applichi il tag o l’accesso.
2

Go Live

Attiva l’interruttore Live Mode e aggiungi l’URL del GHL Inbound Webhook come endpoint in modalità live. Le altre modifiche dipendono dall’approccio scelto:
  • Payment Links (A): Sostituisci il link con il link di pagamento live del prodotto.
  • Overlay checkout (B): Indirizza il backend a https://live.dodopayments.com/checkouts con la tua chiave API live e imposta mode su "live" nella chiamata Initialize dell’SDK.
  • Inline checkout (C): Apporta le stesse modifiche dell’overlay checkout, poiché utilizza lo stesso endpoint backend e la stessa inizializzazione dell’SDK.
Quindi effettua un acquisto reale dall’inizio alla fine per confermare la configurazione.

Suggerimenti

Considera il webhook come fonte autorevole per concedere l’accesso. Agisci su payment.succeeded o subscription.active, non sul redirect del browser.
Un GHL Inbound Webhook non può verificare l’header webhook-signature. Per fare in modo che solo gli eventi Dodo Payments autentici attivino l’evasione in GHL, indirizza l’endpoint webhook di Dodo Payments al tuo backend, verifica ogni evento lì (Webhooks) e inoltralo quindi all’URL del GHL Inbound Webhook.

Risoluzione dei problemi

Verifica che l’endpoint webhook di Dodo Payments punti all’URL corretto del GHL Inbound Webhook, che il workflow sia pubblicato e che il trigger abbia acquisito un payload di esempio, in modo che esista la mappatura dei campi.
Il JavaScript personalizzato viene normalmente eseguito solo sulla pagina pubblicata su un dominio reale, non in Preview. Verifica che la pagina sia pubblicata, che l’SDK <script> sia stato caricato e che checkoutUrl sia un URL di sessione valido proveniente dal tuo backend.
Verifica che il workflow utilizzi find/create contact by email e che il campo email sia mappato dal payload del webhook.
È un comportamento previsto. Dodo Payments elabora i pagamenti, quindi registrali in GHL con il workflow del webhook.
Ultima modifica il 28 settembre 2026