我们服务端接口用的php下的ci框架编写的。
有一个刷新token的控制器 xxx.com/cron/refresh_token,控制器里有代码:
$url = sprintf( 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s' , $Weixin_AppId , $Weixin_AppSecret ); $resp = file_get_contents ( $url ); |
我通过浏览器访问这个控制器,可以正常刷新token:
xxx.com/cron/refresh_token |
用CLI的方式访问:
php . /index .php cron refresh_token |
就会收到报错:
{ "errcode" :40164, "errmsg" : "invalid ip x.x.x.x, not in whitelist hint: [frU1cA09161527]" } |
而事实上,上面这个提示的IP,我已经加了白名单了,所以浏览器访问才会没问题的。后面这个报错不知道是什么原因?
我的BUG……
CI多环境处理不对,CI_ENV配置在apache的配置文件里,用CLI访问没有访问apache,CI_ENV没有加载到。读错配置文件了,用了测试环境的appid