php 微信40001,微信自定义菜提示 “{“errcode”40001,”errmsg””invalid credential”}”...

微信自定义菜提示 “{“errcode”40001,”errmsg””invalid credential”}”

微信接口说明只是简单的一句话带过:“通过POST一个特定结构体,实现在微信客户端创建自定义菜单。”

实在令人摸不着头脑, 网上找的代码总是 ”{“errcode”:40001,”errmsg”:”invalid credential”}”。

后台发现token和access_token原来是不同的概念,token是在微信后台选择开发模式的时候填写的,而access_token则是通过接口调用生成的。调用的语句是:

•https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

结果会返回一个json格式的access_toke值。注意 json_decode()解析json后的结果是对象。所以access_token 是 $weixindata->access_token 而不是$weixindata[‘access_token’]。

如果你不想麻烦也可以到以下网址提交生成你的菜单。

•http://www.xjabc.net/weixinjiekoukaifa/menu.php

微信菜单并不是在客户打开微信的时候实时生成的,而已运行一次代码把数据提交到微信后台的,

access_token;

$data = ‘{

“button”:[

{

“type”:”click”,

“name”:”获取密码1″,

“key”:”get_password”

},

{

“type”:”click”,

“name”:”锁定账户”,

“key”:”lock_acount”

},

{

“type”:”click”,

“name”:”解锁账户”,

“key”:”unlock_acount”

}]

}’;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, “https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$ACCESS_TOKEN}”);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “POST”);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)’);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_AUTOREFERER, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$tmpInfo = curl_exec($ch);

if (curl_errno($ch)) {

echo ‘Errno’.curl_error($ch);

}

curl_close($ch);

var_dump($tmpInfo);

?>

标签:微信.PHP


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部