WordPressでライセンス認証サービスをWordPressパッケージ(SIS統合文書照会サービス)に組み込み
■はじめに
誰も求めていないライセンス認証サービス・サーバーの構築ですが、一通りの解説をすすめます(;^ω^)。
今回は、「WordPressで構築したサービス・パッケージに組み込んでみたらどうなるか」という簡単なお話です。
■適用するサンプル
これ。
■大まかな手順
■組み込み方法を考える
今回は、WordPressで構築した文書管理システムへの組み込みです(くどい)。これは「WordPress+テーマ(親/子)+ライセンス認証クライアント」という非常にシンプルな構成で成り立っています。一番無難な変更箇所は「子テーマ」であることは自明では無いでしょうか?
よって、子テーマを改造してライセンス認証コードを埋め込むこととします。この場合は、「子テーマを切り替えられたり、編集されてしまうと終わりだよね!?」というツッコミに対して激しく同意します。
サンブルだから(震え声。
■組み込む
めんどうなので、front-page.phpだけを弄ることにします。
<?php get_template_part( 'inc/license_input'); ?>
をいれましたw。
次に、「inc/license_input」の中身ですが
<?php
$SIS_LICENSE_CHECK=false;
$slmcmArray = get_option('slmclient');
$SIS_QR_DOCS_LICENSE_KEY = get_option( "license_key_".SISQRDOC_THEME_ITEM_REFERENCE );
$SIS_LICENSE_CHECK_CYCLE = intval( get_option( SISQRDOC_THEME_ITEM_REFERENCE."_checkterm" ) );
if( ((($SIS_LICENSE_CHECK_CYCLE + 86400) < time() || $SIS_LICENSE_CHECK_CYCLE == 0)
&& $slmcmArray['item_reference'] == SISQRDOC_THEME_ITEM_REFERENCE )
|| strpos($SIS_QR_DOCS_LICENSE_KEY,SISQRDOC_THEME_KEY_PREFIX) === false ){
// 24時間を経過していたら再度有効性を確認し、無効なら再認証する
$api_params = array(
'slm_action' => 'slm_check',
'secret_key' => SISQRDOC_THEME_SECRET_KEY,
'license_key' => $SIS_QR_DOCS_LICENSE_KEY,
);
// Send query to the license manager server
$response = wp_remote_get(
add_query_arg($api_params, SISQRDOC_THEME_LICENSE_SERVER_URL),
array('timeout' => 20, 'sslverify' => false));
$license_data = json_decode( $response['body'] );
if( $license_data->{'status'} == "active" ){
// サイクルを設定
update_option( SISQRDOC_THEME_ITEM_REFERENCE."_checkterm", time() );
$SIS_LICENSE_CHECK=true;
}
} else {
$SIS_LICENSE_CHECK=true;
}
if( !$SIS_LICENSE_CHECK ){
// ライセンス認証
?>
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/jquery.slmclient.js"></script>
<div class="<?php lightning_the_class_name( 'siteContent' ); ?>">
<?php
if ( ! class_exists( 'SlmClient' ) ) {
require_once dirname( __FILE__ ) . '/../lib/class-slmclient.php';
}
$SIS_ITEM_REF =SISQRDOC_THEME_ITEM_REFERENCE;
$SIS_SALES_URL =SISQRDOC_THEME_SALES_SERVER_URL;
$SIS_LICENSE_URL =SISQRDOC_THEME_LICENSE_SERVER_URL;
$SIS_SERCRET_KEY =SISQRDOC_THEME_SECRET_KEY;
$SLM_SHORTCODE = '[slmcl item_reference="'.$SIS_ITEM_REF.'"' ;
$SLM_SHORTCODE .= ' sales_site_url="'.$SIS_SALES_URL.'"' ;
$SLM_SHORTCODE .= ' license_server_url="'.$SIS_LICENSE_URL.'"' ;
$SLM_SHORTCODE .= ' special_secretkey="'.$SIS_SERCRET_KEY.'"]' ;
echo do_shortcode( $SLM_SHORTCODE );
echo '<br /><a href="./deactive-license-key/">ライセンスキーを無効化する</a></div>';
}
?>
こんなん。CSSや細かい定数等は別で定義してあります。これだけです(;^ω^)。
■動作の解説
解説など入らないだろうとはおいますが、自分用の覚え書き。
クライアント側は、Software License Manager Client のクラスを使い、サーバと通信して認証等を実行します。ここでは、activate/check/deactivateを行っています。
認証は24時間に一度の間隔で自動的に動作し、エラーが発生すると認証キーを入れるよう促します。
基本的にはこれだけです。
やりとりはREST API / JSONですから、これらが扱える他のプラットフォームでも動作できます。
次回、Excel VBAで試すよ(・∀・)!
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?
Related Posts
https://kshigeyama.dreampresenter.info/2020/05/21/4975/WordPress■はじめに 誰も求めていないライセンス認証サービス・サーバーの構築ですが、一通りの解説をすすめます(;^ω^)。 今回は、「WordPressで構築したサービス・パッケージに組み込んでみたらどうなるか」という簡単なお話です。 ■適用するサンプル これ。 https://kshigeyama.dreampresenter.info/2020/04/30/4930/ ■大まかな手順 ■組み込み方法を考える 今回は、WordPressで構築した文書管理システムへの組み込みです(くどい)。これは「WordPress+テーマ(親/子)+ライセンス認証クライアント」という非常にシンプルな構成で成り立っています。一番無難な変更箇所は「子テーマ」であることは自明では無いでしょうか? よって、子テーマを改造してライセンス認証コードを埋め込むこととします。この場合は、「子テーマを切り替えられたり、編集されてしまうと終わりだよね!?」というツッコミに対して激しく同意します。 サンブルだから(震え声。 ■組み込む めんどうなので、front-page.phpだけを弄ることにします。 <?php get_template_part( 'inc/license_input'); ?> をいれましたw。 次に、「inc/license_input」の中身ですが <?php$SIS_LICENSE_CHECK=false;$slmcmArray = get_option('slmclient');$SIS_QR_DOCS_LICENSE_KEY = get_option( 'license_key_'.SISQRDOC_THEME_ITEM_REFERENCE );$SIS_LICENSE_CHECK_CYCLE = intval( get_option( SISQRDOC_THEME_ITEM_REFERENCE.'_checkterm' ) );if( ((($SIS_LICENSE_CHECK_CYCLE + 86400) < time() || $SIS_LICENSE_CHECK_CYCLE == 0)&& $slmcmArray == SISQRDOC_THEME_ITEM_REFERENCE )|| strpos($SIS_QR_DOCS_LICENSE_KEY,SISQRDOC_THEME_KEY_PREFIX) === false ){// 24時間を経過していたら再度有効性を確認し、無効なら再認証する$api_params = array('slm_action' => 'slm_check','secret_key' => SISQRDOC_THEME_SECRET_KEY,'license_key' => $SIS_QR_DOCS_LICENSE_KEY,);// Send query to the license manager server$response...しげっち法師さん kshigeyama@gmail.comAdministratorドリームプレゼンター&サポータ&アドバイザです。こっちは比較的マジメ系w。ありとあらゆるコトをフュージョンした感じで生きていこうかな。 文房具やガジェット、家電屋さん巡り、バスに乗ってふらふらなどもしています。 Bot作者でもあります。システム構築(Web/PHP/Javaとか)・IT/ビジネスコンサル系です。しげっち@ドリームプレゼンターWeb
コメントを残す