[PC] Software License Manager(WordPressのプラグイン)〜c#アプリケーションへの応用へ:その3〜
Software License Manager Plugin for WordPressの利用(その3)
| 1.SLM設定 | 2.ライセンスキー作成 | 3.ライセンス確認確認 |
前回は、Software License Managerのサーバー(WordPress)側でPHPを使い、slm_action=slm_create_newでライセンスキーを作成しました。今回は、その作成したライセンスをチェックするc#のプログラム部分を記載したいと思います。
ライセンス確認
今回は、C#の関数です。やったことはたいしたことをしていません。HttpClient()でWordPressのURLを指定して、REST APIのコマンドをつけているだけです。
var client = new HttpClient(); string content = @"?slm_action=slm_check&secret_key={操作キー}&license_key={ライセンスキー}"; Task webTask = client.GetStringAsync("https://co2.ddns.net/" + content); //URL webTask.Wait(); string response = webTask.Result; var jss = new JavaScriptSerializer(); Hashtable param = new Hashtable(); param = jss.Deserialize(response); Console.WriteLine("After: " + GetMachineID()); if (param["result"].ToString().IndexOf("success") >= 0 && param["product_ref"].Equals(GetMachineID())) { //成功したとき return true; } else { //失敗したとき return false; }
SLMのコマンド
今回使用したコマンドは、slm_action=slm_checkを指定しました。つまり、フルのURLを記載すると、「https://co2.ddns.net/?slm_action=slm_check&secret_key={操作キー}&license_key={ライセンスキー}」となります。
戻り値
成功すると、次のような戻り値が返されます。
{"result":"success","message":"License key details retrieved.","status":"pending","max_allowed_domains":"1","email":"xxxx@yyy.zz.jp","registered_domains":[],"date_created":"2017-11-14","date_renewed":"0000-00-00","date_expiry":"2017-12-14","product_ref":"{登録した値}"}
例えばライセンスキーが違っていて失敗すると、次のような戻り値が返されます。
{"result":"error","message":"Invalid license key","error_code":60}
後処理
この戻り値は、JSON形式なので、JavaScriptSerializer()のDeserialize()で処理してあげれば各項目の値が簡単に参照できます。
今回は、Hashtableに格納し、「param[“result”].ToString().IndexOf(“success”) >= 0」で、処理が成功したか否か確認しています。
まとめ
簡単ではありますが、Software License ManagerというWordPressのプラグインを用いて、ソフトウェアのライセンス管理をするプログラムを紹介してみました。便利なツールだと思われるので、もっときれいに活用していただければと思います。少しでも導入の参考になれば幸いです。