कुछ अन्य लोगों की तरह, मैं डिफ़ॉल्ट रूप से ग्राहकों के लिए शत्रुतापूर्ण होने का बहुत बड़ा विरोधी हूं - कुछ ऐसा जो लाइसेंस उद्योग के लिए कुख्यात है। तो मैं आपकी समस्या के लिए एक अच्छे समाधान पर विस्तार करूँगा जो एक अच्छा ग्राहक UX प्रदान करता है ।
शुरू करने के लिए, आपने उल्लेख किया कि आपके पास आपके सॉफ़्टवेयर का "सीमित" संस्करण है जिसका उपयोग आप अतिरिक्त सुविधाओं के लिए ग्राहकों को "अपग्रेड" करने के लिए करने और बदलने के लिए कर रहे हैं। तो आप जो देख रहे हैं , वह आपके उत्पाद के लिए फ़ीचर लाइसेंस हैं जैसे ग्राहक फ़ीचर-एक्स या फ़ीचर-वाई के लिए लाइसेंस खरीद सकते हैं ।
मैंने Keygen को इस प्रकार के लाइसेंसिंग को ध्यान में रखते हुए बनाया है। Keygen एक लाइसेंसिंग REST API है जो आपको उपयोगकर्ता खातों, लाइसेंसों और मशीन उपयोग / संघों को ट्रैक करने की अनुमति देता है।
मैं क्या करूंगा 2 लाइसेंस प्रकार ( Keygen के भीतर एक नीति ) स्थापित किया गया है, जहां एक सीमित मुफ्त संस्करण के लिए एक आधार नीति है, और दूसरा भुगतान किए गए संस्करण के लिए एक नीति है।
मुझे यकीन नहीं है कि आप भुगतान के लिए क्या उपयोग कर रहे हैं, लेकिन चलो मान लेते हैं कि आप स्ट्राइप (आजकल सुंदर मानक) जैसी किसी चीज़ का उपयोग कर रहे हैं जो वेबहूक प्रदान करती है । कीजेन में वेबहूक भी है (आप इसका उपयोग करते हैं या नहीं, यह सब अभी भी लागू है)। आप दोनों ओर से वेबहुक का उपयोग करके अपने भुगतान प्रदाता के साथ बात करने के लिए Keygen को एकीकृत कर सकते हैं (विचार करें: customer.created
-> ग्राहक के लिए आधार लाइसेंस बनाएं, license.created
- नए लाइसेंस के लिए ग्राहक से शुल्क लें)।
तो webhooks का उपयोग करके, हम नए ग्राहकों के लिए लाइसेंस निर्माण को स्वचालित कर सकते हैं। तो आवेदन के भीतर लाइसेंस सत्यापन के बारे में क्या? यह कई तरीकों से किया जा सकता है, लेकिन सबसे लोकप्रिय तरीका यह है कि आप अपने ग्राहक को एक इनपुट क्षेत्र में एक लंबी लाइसेंस कुंजी दर्ज करने की आवश्यकता करें, जिसे आप तब सत्यापित कर सकते हैं; मुझे लगता है कि आपके आवेदन में लाइसेंस सत्यापन को संभालने के लिए यह एक भयानक तरीका है।
तुमने ऐसा क्यों सोचा? अच्छी तरह से पहले, आप अपने ग्राहक को मशीन की खपत के लिए एक लंबे समय तक लाइसेंस कुंजी इनपुट करने के लिए आवश्यक हैं , और दूसरा आपके लिए आवश्यक है कि आप और आपके ग्राहक ने कहा कि लंबे समय से लाइसेंस कुंजी का ट्रैक रखें ।
ठीक है, तो एक विकल्प क्या है? मुझे लगता है कि सबसे अच्छा विकल्प आपके सभी ग्राहकों के लिए कुछ किया जाता है: उन्हें ईमेल / पासवर्ड का उपयोग करके अपने उत्पाद के लिए एक खाता बनाने की अनुमति देना । फिर आप उनके सभी लाइसेंस और उनकी मशीनों को उस खाते से जोड़ सकते हैं। इसलिए अब लाइसेंस कुंजी को इनपुट करने के बजाय, वे बस अपनी साख का उपयोग करके लॉग इन कर सकते हैं।
इससे आपको क्या फायदा? सबसे पहले, यह आपके और आपके ग्राहकों के लिए लाइसेंस कुंजियों पर नज़र रखने की आवश्यकता से छुटकारा दिलाता है, क्योंकि यह सभी अपने उपयोगकर्ता खाते के अंदर-और-उसके पीछे सबसे महत्वपूर्ण रूप से नियंत्रित किया जाता है : अब आप अपने ग्राहकों को स्वयं-सेवा लाइसेंस और मशीन की पेशकश कर सकते हैं सक्रियण! जब से उनके सभी लाइसेंस और मशीनें उनके उपयोगकर्ता खाते से जुड़ी होती हैं, तो आप उन्हें एक गैर-मान्यता प्राप्त मशीन पर आपके आवेदन को आग लगाने पर लाइसेंस खरीदने के लिए संकेत दे सकते हैं।
अब लाइसेंस सत्यापन पर : जब भी आपका ग्राहक आपके ईमेल / पासवर्ड के साथ आपके आवेदन में लॉग इन करता है, तो आप लाइसेंस के लिए अपने उपयोगकर्ता खाते को उनके द्वारा निर्धारित कर सकते हैं कि क्या वे सुविधा-एक्स या सुविधा-वाई का उपयोग कर सकते हैं । और जब से आपका आवेदन अब स्व-सेवा है , आप अपने ग्राहकों को अपने आवेदन में सीधे अतिरिक्त सुविधाओं को खरीदने की अनुमति दे सकते हैं!
इसलिए हमने अपने लाइसेंस प्रणाली के लिए एक टन स्वचालन प्रदान किया है, हम अलग-अलग सुविधाओं को लाइसेंस दे सकते हैं (यानी एक सीमित बनाम पूर्ण संस्करण), हमने अपने ग्राहकों के लिए एक शानदार UX की पेशकश की है और हमने सबसे बड़े कारणों में से एक को भी समाप्त कर दिया है समर्थन अनुरोधों के लिए: लाइसेंस कुंजी पुनर्प्राप्ति।
वैसे भी, यह लंबा है, लेकिन उम्मीद है कि यह किसी की मदद करता है!