Come alcuni altri menzionati, sono un grande oppositore di essere ostile ai clienti per impostazione predefinita, qualcosa per cui l'industria delle licenze è nota. Quindi espanderò su una buona soluzione per il tuo problema che offre anche una buona UX per i clienti .
Per iniziare, hai affermato di disporre di una versione "limitata" del software che stai utilizzando per provare a convertire i clienti in "upgrade" per funzionalità aggiuntive. Quindi, ciò che stai cercando sono le licenze delle funzionalità per il tuo prodotto, ad esempio un cliente può acquistare una licenza per la funzione X o la funzione Y .
Ho costruito Keygen pensando a questo tipo di licenza. Keygen è un'API REST per le licenze che consente di gestire account utente, licenze e anche di tenere traccia dell'utilizzo / associazioni della macchina.
Quello che vorrei fare è impostare 2 tipi di licenza (una politica all'interno di Keygen) in cui una è una politica di base per la versione gratuita limitata e l'altra è una politica per la versione a pagamento.
Non sono sicuro di cosa stai usando per i pagamenti, ma supponiamo che tu stia usando qualcosa come Stripe (abbastanza standard al giorno d'oggi) che offre webhook . Keygen ha anche dei webhook (che tu lo usi o meno, tutto ciò è ancora applicabile). Puoi integrare Keygen per parlare con il tuo fornitore di servizi di pagamento utilizzando i webhook di entrambe le parti (pensa: customer.created
-> crea una licenza di base per il cliente, license.created
-> addebita al cliente la nuova licenza).
Quindi, utilizzando i webhook, possiamo automatizzare la creazione di licenze per i nuovi clienti. E che dire della convalida della licenza all'interno dell'applicazione stessa? Questo può essere fatto in vari modi, ma il modo più popolare è richiedere al cliente di inserire una chiave di licenza lunga in un campo di input che è possibile convalidare; Penso che questo sia un modo terribile per gestire la convalida della licenza nella tua applicazione.
Perché lo penso? Prima di tutto, stai chiedendo al tuo cliente di inserire una chiave di licenza noiosamente lunga che è destinata al consumo della macchina, e in secondo luogo di richiedere a te e al tuo cliente di tenere traccia di tale chiave di licenza noiosamente lunga .
Va bene, quindi qual è un'alternativa? Penso che la migliore alternativa sia fare qualcosa a cui tutti i tuoi clienti sono abituati: consentire loro di creare un account per il tuo prodotto usando una e-mail / password . È quindi possibile associare tutte le loro licenze e le loro macchine a tale account. Quindi ora invece di inserire una chiave di licenza, possono semplicemente accedere utilizzando le loro credenziali.
Che vantaggio ti offre? In primo luogo, elimina la necessità per te e per i tuoi clienti di tenere traccia delle chiavi di licenza, poiché è tutto gestito dietro le quinte all'interno del loro account utente e, cosa più importante: ora potete offrire ai vostri clienti licenze e macchine self-service Attivazione! ovvero poiché tutte le loro licenze e macchine sono associate al proprio account utente, è possibile richiedere loro di acquistare una licenza quando accendono l'applicazione su una macchina non riconosciuta.
Ora sulla convalida della licenza : ogni volta che il cliente accede all'applicazione con la propria e-mail / password, è possibile richiedere al proprio account utente le licenze di propria proprietà per determinare se possono utilizzare la funzione-X o la funzione-Y . E poiché l'applicazione è ora self-service , puoi consentire ai tuoi clienti di acquistare funzionalità aggiuntive direttamente dall'applicazione!
Quindi abbiamo introdotto un sacco di automazione nel nostro sistema di licenze, possiamo concedere in licenza singole funzionalità (ovvero una versione limitata o completa), abbiamo offerto una fantastica UX per i nostri clienti e abbiamo anche alleviato uno dei motivi principali per richieste di supporto: recupero chiave di licenza.
Comunque, questo è durato a lungo ma si spera che aiuti qualcuno!