Sözü birkaç kişi gibi ben büyük kulüpler rakip lisans sanayi tanınıyor varsayılan-şey tarafından müşterilere düşman olma. Bu yüzden , iyi bir müşteri UX'i de sunan probleminiz için iyi bir çözüm geliştireceğim .
Başlamak için, yazılımınızı müşterilerin ek özellikler için "yeni sürüme geçirmeye" dönüştürmek amacıyla kullandığınız "sınırlı" bir sürümünüz olduğunu belirtmiştiniz. Yani aradığınız ürününüz için özellik lisanslarıdır , örneğin bir müşteri X özelliği veya X özelliği için lisans satın alabilir .
Ben inşa Keygen akılda lisans bu tip. Keygen, kullanıcı hesaplarını, lisansları yönetmenizi ve makine kullanımını / ilişkilendirmelerini izlemenizi sağlayan bir lisanslama REST API'sidir.
Yapacağım, biri sınırlı ücretsiz sürüm için temel bir politika, diğeri ise ücretli sürüm için bir politika olan 2 lisans türü ( Keygen içinde bir politika ) kurmaktır.
Ödemeler için ne kullandığınızdan emin değilim, ancak webhooks sunan Stripe (günümüzde oldukça standart) bir şey kullandığınızı varsayalım . Keygen'in ayrıca web kancaları da vardır (bunu kullansanız da kullanmasanız da, tüm bunlar hala geçerlidir). Keygen'i her iki taraftan webhooks kullanarak ödeme sağlayıcınızla konuşacak şekilde entegre edebilirsiniz (düşünün: customer.created
-> müşteri için temel lisans oluşturun, license.created
-> yeni lisans için müşteriden ücret alın).
Böylece, web kancalarını kullanarak yeni müşteriler için lisans oluşturmayı otomatikleştirebiliriz. Peki uygulamanın kendisinde lisans doğrulaması ne olacak? Bu çeşitli yollarla yapılabilir, ancak en popüler yol, müşterinizin daha sonra doğrulayabileceğiniz bir giriş alanına uzun bir lisans anahtarı girmesini zorunlu kılmaktır; Bunun , uygulamanızdaki lisans doğrulamasını ele almanın korkunç bir yolu olduğunu düşünüyorum .
Neden böyle düşünüyorum? Öncelikle, müşterinizin makine tüketimi için tasarlanmış sıkıcı bir şekilde uzun bir lisans anahtarı girmesini ve ikinci olarak sizden ve müşterinizden söz konusu sıkıcı derecede uzun bir lisans anahtarını takip etmenizi istersiniz .
Tamam, alternatif nedir? Bence en iyi alternatif, tüm müşterilerinizin alışkın olduğu bir şey yapmaktır : bir e-posta / şifre kullanarak ürününüz için bir hesap oluşturmalarına izin vermek . Daha sonra tüm lisanslarını ve makinelerini bu hesapla ilişkilendirebilirsiniz. Şimdi bir lisans anahtarı girmek yerine, kimlik bilgilerini kullanarak giriş yapabilirler.
Bu size ne avantaj sağlıyor? Öncelikle, tüm kullanıcı hesaplarının perde arkasında ele alındığı ve en önemlisi: Artık müşterilerinize self servis lisans ve makine sunabilirsiniz. hareketlilik! yani, tüm lisansları ve makineleri kullanıcı hesaplarıyla ilişkilendirildiğinden, uygulamanızı tanınmayan bir makinede başlattıklarında lisans satın almalarını isteyebilirsiniz.
Şimdi lisans doğrulamaya başlayın: Müşteriniz uygulamanızda e-posta / şifresi ile her oturum açtığında, X -özelliği veya Y-özelliğini kullanıp kullanamayacaklarını belirlemek için kullanıcı hesaplarında sahip oldukları lisansları sorgulayabilirsiniz . Uygulamanız artık kendi kendine hizmet verdiği için, müşterilerinizin doğrudan uygulamanızdan ek özellikler satın almalarına izin verebilirsiniz!
Bu yüzden lisanslama sistemimize bir ton otomasyon getirdik, bireysel özellikleri lisanslayabiliriz (yani sınırlı ve tam sürüm), müşterilerimiz için harika bir UX sunduk ve en büyük nedenlerden birini de hafiflettik. destek istekleri için: lisans anahtarı kurtarma.
Her neyse, bu uzun sürdü ama umarım birine yardım eder!