[PC] Software License Manager(WordPressのプラグイン)〜c#アプリケーションへの応用へ:その2〜
Software License Manager Plugin for WordPressの利用(その2)
| 1.SLM設定 | 2.ライセンスキー作成 | 3.ライセンス確認確認 |
前回は、Software License Managerの紹介レベルで終わってしまったので、今回は、使い方を記載したいと思います。まずはphpでライセンスキーを作成するプログラム。
ライセンス作成
slm_actionにやりたいことを定義します。slm_actionが取れる値は、slm_create_new, slm_activate, slm_deactivate, slm_checkです。値を変更する値があった方が個人的には嬉しいのですが、今のところ見つけられません。
slm_create_newを指定し、secret_keyは設定した作成キーを指定します。氏名、メールアドレス、会社名、ユニークなトランザクションID、利用できるドメイン数、作成日、期限日を引数として渡せばライセンスキーが作成されます。本サイトでは、上記引数に加え、product referenceも使用することにしました。PC一台につき1ライセンスを区別するための識別子をここに保存することにしました。
$api_params = array( 'slm_action' => 'slm_create_new', 'secret_key' => '1234567890abcdef', 'first_name' => $firstName, 'last_name' => $lastName, 'email' => $email, 'company_name' => '', 'txn_id' => date('U'), 'max_allowed_domains' => '1', 'date_created' =>date('Y-m-d'), 'date_expiry' =>date('Y-m-d', strtotime("1 month")), 'product_ref' =>$prdId, ); // Send query to the license manager server $response = wp_remote_get(add_query_arg($api_params, 'https://co2.ddns.net'), array('timeout' => 20, 'sslverify' => true)); // Check for error in the response if (is_wp_error($response)){ print ("予期せぬエラーが発生しました。また後で申請してください。"); } // License data. $license_data = json_decode(wp_remote_retrieve_body($response), true); if ($license_data[result] != "success") { }
httpのGETでサーバーに送ると、そのslm_actionに応じた処理結果がJSON形式で返されます。JSONをデコードして、result項目が、”success”ならば送信成功です。
activate, deactivateでそれぞれ状態を変更できますし、checkでライセンスキーの情報をすべて入手することも可能です。
運用
あとは運用の問題です。activateをリモートで行うか、プラグインの画面で行うか、実装形態を設計すれば良いと思います。
画面は、プラグインの画面です。Editボタンが表示されるのでWordPressからの編集はらくらくです。プラグイン画面から状態や期限日を修正し、c#からそれを読み込むことでソフトウェアのライセンス管理を本サイトでは行うことにしました。
次回
次がようやくc#での管理になります。