2018/04/07
1.【问题】Can’t use function return value in write context
出现问题的代码段
if(empty(session('userId'))){
....
}
【解析】:这个意思大概就是说不能使用函数返回值作为函数参数。其实也与php版本有关,在5.5以上就不会报错。
所以解决办法是:
(一)、改写代码
$test = session('userId');
if(empty($test)){
...
}
(二)、升级一下PHP的版本,改为5.5以上的
2.【问题】PHP Warning: file_get_contents failed to open stream
【解析】:此警告说服务器阻止访问远程文件。
解决办法:参考 PHP Warning: file_get_contents failed to open stream解决办法。
我嫌麻烦,直接用了curl方法,参考了这里的代码实例分析基于PHP微信网页获取用户信息,主要是getUserInfo.php里的getJson方法。
3. 【问题】测试公众号:redirect_uri域名与后台配置不一致,错误码10003 错误
【解析】:百度查了好多相关问题,因为我的是测试账号,但我不知道测试账号的接口权限这边也需要设置网页账号。
解决办法:点击右侧的“修改”,填写回调域名即可
参考 解决微信公共号开发出现 redirect_uri域名与后台配置不一致,错误码10003 错误
4.我测试公众号用代码写的自定义菜单,但有的时候修改了自定义菜单,但是经常无法生效。取消关注后还是无法生效。这个时候就要看一下你写的自定义菜单的这个接口是不是有什么问题了。
public function defineItem()
{
//创建微信菜单
//目前微信接口的调用方式都是通过CURL post/get
header('content-type:text/html;charset=utf-8');
$access_token = $this->getWxAccessToken();
echo $access_token;
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $access_token;
$postArr = array(
'button' => array(
array( 'name' => urlencode('商城入口'),
'type' => 'view',
'url' => 'http://www.qq.com'),//第一个一级菜单
array('name' => urlencode('商家中心'),
'type'=>'view',
'url'=>'https://www.sogou.com/',
),//第二个一级菜单
array('name' => urlencode('招商政策'),
'type' => 'view',
'url' => 'http://www.baidu.com',
)//第三个一级菜单
),
);
echo $postJson = urldecode(json_encode($postArr));
$res = $this->http_curl($url, 'post', 'json', $postJson);
echo "<hr/>";
var_dump($res);
}
这个方法是可以访问的,如果自定义菜单修改后,无效,我们就可以访问这个方法,通过var_dump($res),
我们可以根据图中的errcode、errmsg来修改错误。如我现在的错误码就是40001,通过微信开发文档我们可以知道是获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口。
这个时候重新获取一下access_token就可以了