Pocket
LINEで送る

■はじめに

 誰も求めていないライセンス認証サービス・サーバーの構築ですが、一通りの解説をすすめます(;^ω^)。

 

 今回は、「WordPressで構築したサービス・パッケージに組み込んでみたらどうなるか」という簡単なお話です。

 

■適用するサンプル

これ。

QRコードも使った文書情報照会サービスを作ってみた件

 

■大まかな手順

■組み込み方法を考える

 今回は、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で試すよ(・∀・)!

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

Follow me!

Pocket
LINEで送る

しげっち法師さん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...ICT、文房具、ライフハックをすべての人に。