Riferimento API Cambia Piano
Anteprima Cambiamento Piano API
Guida all'Integrazione degli Abbonamenti
Cos’è un upgrade o downgrade dell’abbonamento?
Cambiare piano consente di spostare un cliente tra livelli o quantità di abbonamento. Usalo per:- Allineare i prezzi con l’uso o le funzionalità
- Passare da mensile ad annuale (o viceversa)
- Regolare la quantità per prodotti basati su posti
Quando utilizzare i cambiamenti di piano
- Aggiorna quando un cliente ha bisogno di più funzionalità, utilizzo o posti
- Riduci quando l’uso diminuisce
- Migra gli utenti a un nuovo prodotto o prezzo senza annullare il loro abbonamento
Requisiti
Prima di implementare i cambiamenti di piano di abbonamento, assicurati di avere:- Un account commerciante Dodo Payments con prodotti di abbonamento attivi
- Credenziali API (chiave API e chiave segreta webhook) dal dashboard
- Un abbonamento attivo esistente da modificare
- Endpoint webhook configurato per gestire eventi di abbonamento
Guida all’Implementazione Passo-Passo
Segui questa guida completa per implementare i cambiamenti di piano di abbonamento nella tua applicazione:Comprendere i Requisiti per il Cambiamento di Piano
- Quali prodotti di abbonamento possono essere cambiati con quali altri
- Quale modalità di proration si adatta al tuo modello di business
- Come gestire i cambiamenti di piano falliti in modo elegante
- Quali eventi webhook monitorare per la gestione dello stato
Scegli la Tua Strategia di Proration
- prorated_immediately
- difference_immediately
- full_immediately
- Calcola l’importo esatto prorato in base al tempo rimanente del ciclo
- Addebita un importo prorato in base al tempo non utilizzato rimanente nel ciclo
- Fornisce una fatturazione trasparente ai clienti
Implementa l'API Cambia Piano
prorated_immediately, full_immediately, o difference_immediately.Gestisci gli Eventi Webhook
subscription.active: Cambiamento di piano riuscito, abbonamento aggiornatosubscription.plan_changed: Piano di abbonamento cambiato (upgrade/downgrade/aggiornamento addon)subscription.on_hold: Addebito per il cambiamento di piano fallito, abbonamento in pausapayment.succeeded: Addebito immediato per il cambiamento di piano riuscitopayment.failed: Addebito immediato fallito
Aggiorna lo Stato della Tua Applicazione
- Concedi/rimuovi funzionalità in base al nuovo piano
- Aggiorna il dashboard del cliente con i dettagli del nuovo piano
- Invia email di conferma sui cambiamenti di piano
- Registra le modifiche di fatturazione per scopi di audit
Testa e Monitora
- Testa tutte le modalità di proration con diversi scenari
- Verifica che la gestione dei webhook funzioni correttamente
- Monitora i tassi di successo dei cambiamenti di piano
- Configura avvisi per i cambiamenti di piano falliti
Anteprima dei Cambiamenti di Piano
Prima di confermare un cambiamento di piano, utilizza l’API Anteprima per mostrare ai clienti esattamente quanto verrà addebitato:- Node.js SDK
- Python SDK
API Cambia Piano
Utilizza l’API Cambia Piano per modificare prodotto, quantità e comportamento di proration per un abbonamento attivo.Esempi di avvio rapido
- Node.js SDK
- Python SDK
- Go SDK
- HTTP
invoice_id e payment_id vengono restituiti solo quando viene creato un addebito immediato e/o una fattura durante il cambiamento di piano. Fai sempre affidamento sugli eventi webhook (es. payment.succeeded, subscription.plan_changed) per confermare gli esiti.Gestione degli Addon
Quando cambi i piani di abbonamento, puoi anche modificare gli addon:Modalità di Proration
Scegli come addebitare il cliente quando cambi piano:prorated_immediately
- Addebita per la differenza parziale nel ciclo corrente
- Se in prova, addebita immediatamente e passa al nuovo piano ora
- Downgrade: può generare un credito prorato applicato ai rinnovi futuri
full_immediately
- Addebita l’importo totale del nuovo piano immediatamente
- Ignora il tempo rimanente dal vecchio piano
difference_immediately sono specifici per l’abbonamento e distinti dai Crediti Cliente. Si applicano automaticamente ai rinnovi futuri dello stesso abbonamento e non sono trasferibili tra abbonamenti.difference_immediately
- Upgrade: addebita immediatamente la differenza di prezzo tra i vecchi e i nuovi piani
- Downgrade: aggiungi il valore rimanente come credito interno all’abbonamento e applicalo automaticamente ai rinnovi
Scenari di Esempio
Upgrade: Basic ($30) → Pro ($80) con difference_immediately
Upgrade: Basic ($30) → Pro ($80) con difference_immediately
Downgrade: Plus ($50) → Starter ($20) con difference_immediately
Downgrade: Plus ($50) → Starter ($20) con difference_immediately
Upgrade a metà ciclo con prorated_immediately
Upgrade a metà ciclo con prorated_immediately
Resetta la fatturazione con full_immediately
Resetta la fatturazione con full_immediately
Gestione dei webhook
Monitora lo stato dell’abbonamento tramite webhook per confermare i cambiamenti di piano e i pagamenti.Tipi di eventi da gestire
subscription.active: abbonamento attivatosubscription.plan_changed: piano di abbonamento cambiato (upgrade/downgrade/cambiamenti addon)subscription.on_hold: addebito fallito, abbonamento in pausasubscription.renewed: rinnovo riuscitopayment.succeeded: pagamento per cambiamento di piano o rinnovo riuscitopayment.failed: pagamento fallito
Verifica le firme e gestisci le intenzioni
- Gestore di Route Next.js
- Express.js
Migliori Pratiche
Segui queste raccomandazioni per cambiamenti di piano di abbonamento affidabili:Strategia di Cambiamento di Piano
- Testa a fondo: Testa sempre i cambiamenti di piano in modalità test prima della produzione
- Scegli la proration con attenzione: Seleziona la modalità di proration che si allinea con il tuo modello di business
- Gestisci i fallimenti in modo elegante: Implementa una corretta gestione degli errori e logica di ripetizione
- Monitora i tassi di successo: Monitora i tassi di successo/fallimento dei cambiamenti di piano e indaga sui problemi
Implementazione dei Webhook
- Verifica le firme: Verifica sempre le firme dei webhook per garantire l’autenticità
- Implementa l’idempotenza: Gestisci gli eventi webhook duplicati in modo elegante
- Elabora in modo asincrono: Non bloccare le risposte dei webhook con operazioni pesanti
- Registra tutto: Mantieni registri dettagliati per il debug e scopi di audit
Esperienza Utente
- Comunica chiaramente: Informa i clienti sui cambiamenti di fatturazione e sui tempi
- Fornisci conferme: Invia email di conferma per i cambiamenti di piano riusciti
- Gestisci i casi limite: Considera i periodi di prova, le proration e i pagamenti falliti
- Aggiorna immediatamente l’interfaccia utente: Riflette i cambiamenti di piano nella tua interfaccia applicativa
Problemi Comuni e Soluzioni
Risolvi i problemi tipici riscontrati durante i cambiamenti di piano di abbonamento:Addebito creato ma abbonamento non aggiornato
Addebito creato ma abbonamento non aggiornato
- Elaborazione del webhook fallita o ritardata
- Stato dell’applicazione non aggiornato dopo aver ricevuto i webhook
- Problemi di transazione del database durante l’aggiornamento dello stato
- Implementa una gestione robusta dei webhook con logica di ripetizione
- Usa operazioni idempotenti per gli aggiornamenti di stato
- Aggiungi monitoraggio per rilevare e avvisare su eventi webhook mancati
- Verifica che l’endpoint webhook sia accessibile e risponda correttamente
Crediti non applicati dopo il downgrade
Crediti non applicati dopo il downgrade
- Aspettative sulla modalità di proration: i downgrade accreditano la differenza di prezzo totale del piano con
difference_immediately, mentreprorated_immediatelycrea un credito prorato basato sul tempo rimanente nel ciclo - I crediti sono specifici per l’abbonamento e non si trasferiscono tra abbonamenti
- Il saldo del credito non è visibile nel dashboard del cliente
- Usa
difference_immediatelyper i downgrade quando desideri crediti automatici - Spiega ai clienti che i crediti si applicano ai rinnovi futuri dello stesso abbonamento
- Implementa un portale clienti per mostrare i saldi dei crediti
- Controlla l’anteprima della prossima fattura per vedere i crediti applicati
Verifica della firma del webhook fallita
Verifica della firma del webhook fallita
- Chiave segreta del webhook errata
- Corpo della richiesta raw modificato prima della verifica della firma
- Algoritmo di verifica della firma errato
- Verifica di utilizzare la corretta
DODO_WEBHOOK_SECRETdal dashboard - Leggi il corpo della richiesta raw prima di qualsiasi middleware di parsing JSON
- Usa la libreria standard di verifica dei webhook per la tua piattaforma
- Testa la verifica della firma del webhook nell’ambiente di sviluppo
Il cambiamento di piano fallisce con errore 422
Il cambiamento di piano fallisce con errore 422
- ID abbonamento o ID prodotto non validi
- Abbonamento non in stato attivo
- Parametri richiesti mancanti
- Prodotto non disponibile per cambiamenti di piano
- Verifica che l’abbonamento esista e sia attivo
- Controlla che l’ID prodotto sia valido e disponibile
- Assicurati che tutti i parametri richiesti siano forniti
- Rivedi la documentazione API per i requisiti dei parametri
Addebito immediato fallisce durante il cambiamento di piano
Addebito immediato fallisce durante il cambiamento di piano
- Fondi insufficienti sul metodo di pagamento del cliente
- Metodo di pagamento scaduto o non valido
- La banca ha rifiutato la transazione
- La rilevazione delle frodi ha bloccato l’addebito
- Gestisci gli eventi webhook
payment.failedin modo appropriato - Notifica il cliente di aggiornare il metodo di pagamento
- Implementa la logica di ripetizione per i fallimenti temporanei
- Considera di consentire cambiamenti di piano con addebiti immediati falliti
Abbonamento in attesa dopo il cambiamento di piano
Abbonamento in attesa dopo il cambiamento di piano
on_holdCosa succede:
Quando un addebito per il cambiamento di piano fallisce, l’abbonamento viene automaticamente posto nello stato on_hold. L’abbonamento non si rinnoverà automaticamente fino a quando il metodo di pagamento non verrà aggiornato.Soluzione: Aggiorna il metodo di pagamento per riattivare l’abbonamentoPer riattivare un abbonamento dallo stato on_hold dopo un cambiamento di piano fallito:- Aggiorna il metodo di pagamento utilizzando l’API Aggiorna Metodo di Pagamento
- Creazione automatica dell’addebito: L’API crea automaticamente un addebito per i restanti importi dovuti
- Generazione della fattura: Viene generata una fattura per l’addebito
- Elaborazione del pagamento: Il pagamento viene elaborato utilizzando il nuovo metodo di pagamento
- Riattivazione: Dopo un pagamento riuscito, l’abbonamento viene riattivato allo stato
active
subscription.on_hold: Abbonamento messo in attesa (ricevuto quando l’addebito per il cambiamento di piano fallisce)payment.succeeded: Pagamento per i restanti importi dovuti riuscito (dopo l’aggiornamento del metodo di pagamento)subscription.active: Abbonamento riattivato dopo un pagamento riuscito
- Notifica immediatamente i clienti quando un addebito per il cambiamento di piano fallisce
- Fornisci istruzioni chiare su come aggiornare il loro metodo di pagamento
- Monitora gli eventi webhook per tracciare lo stato di riattivazione
- Considera di implementare una logica di ripetizione automatica per i fallimenti di pagamento temporanei
Riferimento API Aggiorna Metodo di Pagamento
Testare la Tua Implementazione
Segui questi passaggi per testare a fondo la tua implementazione del cambiamento di piano di abbonamento:Configura l'ambiente di test
- Usa chiavi API di test e prodotti di test
- Crea abbonamenti di test con diversi tipi di piano
- Configura l’endpoint webhook di test
- Imposta monitoraggio e registrazione
Testa diverse modalità di proration
- Testa
prorated_immediatelycon varie posizioni del ciclo di fatturazione - Testa
difference_immediatelyper upgrade e downgrade - Testa
full_immediatelyper resettare i cicli di fatturazione - Verifica che i calcoli dei crediti siano corretti
Testa la gestione dei webhook
- Verifica che tutti gli eventi webhook pertinenti siano ricevuti
- Testa la verifica della firma del webhook
- Gestisci gli eventi webhook duplicati in modo elegante
- Testa gli scenari di fallimento dell’elaborazione dei webhook
Testa gli scenari di errore
- Testa con ID abbonamenti non validi
- Testa con metodi di pagamento scaduti
- Testa i fallimenti di rete e i timeout
- Testa con fondi insufficienti
Monitora in produzione
- Imposta avvisi per i cambiamenti di piano falliti
- Monitora i tempi di elaborazione dei webhook
- Traccia i tassi di successo dei cambiamenti di piano
- Rivedi i ticket di supporto clienti per problemi di cambiamento di piano
Gestione degli Errori
Gestisci gli errori API comuni in modo elegante nella tua implementazione:Codici di Stato HTTP
200 OK
200 OK
400 Bad Request
400 Bad Request
401 Unauthorized
401 Unauthorized
404 Not Found
404 Not Found
422 Unprocessable Entity
422 Unprocessable Entity
500 Internal Server Error
500 Internal Server Error
Formato della Risposta di Errore
Prossimi Passi
- Rivedi l’API Cambia Piano
- Esplora i Crediti Cliente
- Implementa avvisi per
subscription.on_hold - Consulta la nostra Guida all’Integrazione dei Webhook