他のいくつかの人が述べたように、私はデフォルトで顧客に対して敵対的であるという大きな反対者です—ライセンス業界が悪名高いものです。したがって、私はあなたの問題に対する優れたソリューションを拡張して、優れた顧客UXも提供します。
最初に、お客様がソフトウェアの「限定」バージョンを使用しており、顧客を追加機能の「アップグレード」に変換するために使用していると述べました。したがって、探しているのは製品の機能ライセンスです。たとえば、顧客は機能Xまたは機能Yのライセンスを購入できます。
私は、構築されたのkeygenを念頭に置いてライセンスこのタイプの。Keygenは、ユーザーアカウント、ライセンスを管理し、マシンの使用状況/関連付けを追跡できるライセンスREST APIです。
私が行うことは、2つのライセンスタイプ(Keygen内のポリシー)をセットアップすることです。1つは制限付きの無料バージョンの基本ポリシーで、もう1つは有料バージョンのポリシーです。
支払いに何を使用しているのかはわかりませんが、Stripe(最近の標準)でwebhookを提供しているものを使用しているとします。Keygenにはwebhookもあります(使用するかどうかに関係なく、これはすべて適用可能です)。Keygenを統合して、両側のWebhookを使用して支払いプロバイダーと対話できます(customer.created
->顧客の基本ライセンスを作成、license.created
->顧客に新しいライセンスを請求)と考えてください。
したがって、Webhookを利用することで、新規顧客のライセンス作成を自動化できます。では、アプリケーション自体の中でのライセンス検証についてはどうでしょうか?これはさまざまな方法で行うことができますが、最も一般的な方法は、顧客が入力フィールドに長いライセンスキーを入力するように要求することです。これは、アプリケーションでライセンス検証を処理するためのひどい方法だと思います。
なぜだと思いますか?まず最初に、マシンの消費を目的とした退屈な長いライセンスキーの入力を顧客に要求し、次に、この退屈な長いライセンスキーの追跡を要求する必要があります。
さて、代替案は何ですか?最善の代替策は、すべての顧客が慣れていることを行うことだと思います。顧客がメール/パスワードを使用して製品のアカウントを作成できるようにします。次に、すべてのライセンスとそのマシンをそのアカウントに関連付けることができます。したがって、ライセンスキーを入力する代わりに、資格情報を使用してログインすることができます。
それはあなたにどのような利点をもたらしますか?1つ目は、ライセンスキーを追跡する必要性を排除することです。すべてがユーザーアカウント内で舞台裏で処理され、最も重要なのは、顧客にセルフサービスライセンスとマシンを提供できるようになるためです。活性化!つまり、すべてのライセンスとマシンはユーザーアカウントに関連付けられているので、認識されていないマシンでアプリケーションを起動したときに、ライセンスを購入するように求めることができます。
次に、ライセンスの検証について説明します。顧客がメール/パスワードを使用してアプリケーションにログインするときはいつでも、所有しているライセンスをユーザーアカウントに照会して、feature-Xまたはfeature-Yを使用できるかどうかを判断できます。アプリケーションがセルフサービスになっているため、顧客がアプリケーション内から直接追加機能を購入できるようにすることができます。
そのため、ライセンスシステムに大量の自動化を導入し、個々の機能(つまり、制限付きバージョンと完全バージョン)のライセンスを取得できます。お客様に素晴らしい UXを提供し、最大の理由の1つを軽減しましたサポートリクエスト:ライセンスキーの回復。
とにかく、これは長くなりましたが、うまくいけば誰かに役立つでしょう!