CI开发微信平台的TOKEN验证设置
本帖最后由 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
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 : 顏色過於刺眼,妨礙閱讀,故改之。
签到 Hex的这个代码有点落后了,可以使用 https://github.com/dodgepudding/wechat-php-sdk, 这个比较全面,我也封装成了CI类库,如果有需要可以发出来大家看看。 yuzhigang5460 发表于 2015-2-3 16:29
Hex的这个代码有点落后了,可以使用 https://github.com/dodgepudding/wechat-php-sdk, 这个比较全面,我 ...
表示有需要,希望能发出来学习一下
本帖最后由 yuzhigang5460 于 2015-3-25 10:05 编辑
huangzh 发表于 2015-3-24 09:11
表示有需要,希望能发出来学习一下
http://www.ifixedbug.com/posts/codeigniter-weixin-library yuzhigang5460 发表于 2015-3-25 10:04
http://www.ifixedbug.com/posts/codeigniter-weixin-library
感谢分享~迟些我也把我封装的发出来{:soso_e128:}
{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}
页:
[1]