来源:我的博客站 OceanicKang |《Yii2.0 微信token验证》
##文件目录
##params.php
<?php
return [
// 微信接入
'wechat' => [
'token' => '这里填写你的token',
],
];
?>
##ValidController.php
<?php
namespace wechat\controllers;
use Yii;
use yii\helpers\Url;
use common\controllers\WechatController;
/**
* 微信token验证
*/
class ValidController extends WechatController
{
public function actionIndex()
{
$request = Yii::$app -> request;
$echoStr = $request -> get('echostr', '');
$signature = $request -> get('signature', '');
$timestamp = $request -> get('timestamp', '');
$nonce = $request -> get('nonce', '');
//valid signature , option
if ($this -> checkSignature($signature, $timestamp, $nonce) && $echoStr) {
echo $echoStr;
}
}
private function checkSignature($signature, $timestamp, $nonce)
{
// you must define TOKEN by yourself
$token = Yii::$app->params['wechat']['token'];
if (!$token) {
echo 'TOKEN IS NOT DEFINE!';
} else {
$tmpArr = [$token, $timestamp, $nonce];
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr = sha1(implode($tmpArr));
if ($tmpStr == $signature){
return true;
} else {
return false;
}
}
}
}
?>
##微信公众平台