{"errcode":61009,"errmsg":"code is invalid hint: [Bgh07a0370vr19]"}
直接使用微信传过来的 Content字段的内容固定为: QUERY_AUTH_CODE:$query_auth_code$(query_auth_code会在专用测试公众号自动授权给第三方平台方时,由微信后台推送给开发者) 然后截取掉QUERY_AUTH_CODE: 只保留冒号后面的作为code的话 解析出来的code提交到接口https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=上就报61009错误
我就被这个困扰了三天三夜
所以不能用这个方法来获取了
你可以回想下你的ComponentVerifyTicket 微信每十分钟提交一次到你这里 你是怎么获取的?
我是这样获取的:
$ComponentVerifyTicket = $xml->getElementsByTagName(‘ComponentVerifyTicket‘)->item(0)->nodeValue;
那么这个code也用这个方法获取 只是把获取的格式改下 $AuthorizationCode = $xml->getElementsByTagName(‘AuthorizationCode‘)->item(0)->nodeValue;
第三方平台方拿到$query_auth_code$的值后,通过接口文档页中的“使用授权码换取公众号的授权信息”API,将$query_auth_code$的值赋值给API所需的参数authorization_code。
上面这段话的接口 要使用xml解析出来的 我是这样做的
PHP code
$AuthorizationCode = $xml->getElementsByTagName(‘AuthorizationCode‘)->item(0)->nodeValue;
把这个获取到的code传到API接口上
然后,调用发送客服消息api回复文本消息给粉丝,其中文本消息的content字段设为:$query_auth_code$_from_api(其中$query_auth_code$需要替换成推送过来的query_auth_code)
然后这个客服的code呢 就使用他 说的这个方法去截取
PHP code
trim(str_replace("QUERY_AUTH_CODE:","",$rec_words))
后面模板消息要用到的code回传 就要用他推送过来的 QUERY_AUTH_CODE:$query_auth_code$ 截取下 只要冒号后面的就可以了
具体的代码如下
客服推送消息代码
$ticket=trim(str_replace("QUERY_AUTH_CODE:","",$rec_words)); //这个时候的code就使用截取的方法来获取就可以了
$tcontent=$ticket.‘_from_api‘;
$msgdata[‘touser‘]=$user;
$msgdata[‘msgtype‘]=‘text‘;
$msgdata[‘text‘][‘content‘]=$tcontent;
$kfurl=‘https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=‘.$ary[‘authorization_info‘][‘authorizer_access_token‘]; //这个是上面api接口返回的值
$msgdata=self::json_encode($msgdata);
$result2=$this->post($kfurl,$msgdata);
我是php代码写的 大家参考下
如果还是不明白 可以加我微信 qiufeng2983