|
本帖最后由 Closer 于 2015-2-3 14:20 编辑
这几天一直在研究微信公众平台的开发,不过在微信公众平台开发TOKEN验证的时候,卡了一些时候,HEX前辈的帖子里面没有说的十分明白,所以就单独发个帖子说明一下这里的设置。
用的是微信平台提供的验证代码,在controller里面的weixin.php在中的代码如下:
define('TOKEN','你的TOKEN值');
class Weixin extends CI_Controller
{
public function index()
{
$this->valid();
}
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
.htaccess文件设置不变:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|captcha|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
config文件设置:
$config['base_url'] = 'http://XXXX.duapp.com/';
$config['index_page'] = '';
routes文件设置:
$route['default_controller'] = "weixin";
微信公众平台的验证URL:直接填写http://你的SAE地址或者BAE地址或者阿里云地址/index.php(直接填写入口文件就可以了)
这里需要说明的一点问题是,这个例子只是验证TOKEN值,在完成验证后,大家要把index中的$this->valid();移除,加入自己的逻辑代码!
大致的流程就是这样。
Closer : 顏色過於刺眼,妨礙閱讀,故改之。
|
|