quicknemでは、ページ遷移の正当性を確認するトークンの受け渡しが可能です。

※このページは開発者向けです。ご自身で理解できない場合は、ウェブ制作会社などにご相談ください。

トークンの暗号化

quicknemへのリンクに、トークン(apitoken=XXXXX)を付与いただいた場合、quicknem側でトークンを暗号化したものを返します。暗号化の仕組みは下記の通りです。

$pass = $ui->getAttribute('apikey');
$iv = str_pad($payid, 16, 0, STR_PAD_LEFT);
$apiid = bin2hex(openssl_encrypt($apitoken, 'aes-256-cbc', $pass, OPENSSL_RAW_DATA, $iv));

openssl_encryptを使用して暗号化します。暗号化メソッドはaes-256-cbc、キーはユーザー毎に異なるAPI KEYを使用します。初期化ベクターには、購入IDに桁数を16桁に揃える処理を施したものを使用します。最後にbin2hexを使って、16進表記にします。

※API KEYは、quicknemにログインすると、プロフィール編集ページで確認できます。

トークンの復号

復号するには、openssl_decryptを使います。

$apikey = 'XXXXXXXXXX';
$nonce = $_GET['apitoken'];
$iv = str_pad($_GET['payid'], 16, 0, STR_PAD_LEFT);
$apitoken = openssl_decrypt(hex2bin($nonce), 'aes-256-cbc', $apikey, OPENSSL_RAW_DATA , $iv);

quicknemで入金完了時にリダイレクトするURLには、payid=XXX&apitoken=XXXのようにパラメータが付与されます。これらを読み取って、openssl_decryptで復号します。$apikeyの箇所は、quicknemのAPI KEYを予め設定しておきます。

復号された$apitokenが、quicknemへ渡したものと一致すれば、正規のページ遷移が行われたことが確認できます。

コメント欄を読み込み中