用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6873|回复: 6
收起左侧

[程序 App] CI开发微信平台的TOKEN验证设置

[复制链接]
发表于 2015-1-24 11:15:16 | 显示全部楼层 |阅读模式
本帖最后由 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 : 顏色過於刺眼,妨礙閱讀,故改之。

 
发表于 2015-2-3 16:29:16 | 显示全部楼层
Hex的这个代码有点落后了,可以使用 https://github.com/dodgepudding/wechat-php-sdk, 这个比较全面,我也封装成了CI类库,如果有需要可以发出来大家看看。
发表于 2015-3-24 09:11:51 | 显示全部楼层
yuzhigang5460 发表于 2015-2-3 16:29
Hex的这个代码有点落后了,可以使用 https://github.com/dodgepudding/wechat-php-sdk, 这个比较全面,我 ...

表示有需要,希望能发出来学习一下

发表于 2015-3-25 10:04:06 | 显示全部楼层
本帖最后由 yuzhigang5460 于 2015-3-25 10:05 编辑
huangzh 发表于 2015-3-24 09:11
表示有需要,希望能发出来学习一下

http://www.ifixedbug.com/posts/codeigniter-weixin-library
发表于 2015-3-27 15:59:17 | 显示全部楼层
yuzhigang5460 发表于 2015-3-25 10:04
http://www.ifixedbug.com/posts/codeigniter-weixin-library

感谢分享~迟些我也把我封装的发出来{:soso_e128:}

本版积分规则