最近在看微信第三方全网的问题,然后看了下微信官方文档,在这里就不吐槽官方文档写太简单了。
自己摸索后终于研究出来了。废话不多说,直接上部分代码。
1.全网API检测:
//全网API检测 define('WXUSERNAME', 'gh_3c884a361561'); if($postObj->ToUserName == WXUSERNAME && preg_match('/^QUERY_AUTH_CODE/',trim($postObj->Content))){ global $JSON_FLAG; $access_token = getThirdAccessToken(); $auth_code = preg_replace('/^QUERY_AUTH_CODE:(.+)/', '$1', trim($postObj->Content)); // 使用授权码换取公众号接口调用凭证和授权信息 $urlAuth = "https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token={$access_token}"; $contentutAuth= json_encode([ "authorization_code" => $auth_code, //授权方appId "component_appid" => $component_appid ], $JSON_FLAG); $resultAuth = json_decode(https_request($urlAuth, $contentutAuth)); $auth_token = $resultAuth ->authorization_info->authorizer_access_token; $text =(object)['content'=> $auth_code.'_from_api']; $content = json_encode([ "touser" => (string)$postObj->FromUserName, "msgtype" => "text", "text" => $text ], $JSON_FLAG); error_log(var_export($content,true),3,'1.log'); $url="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={$auth_token}"; $res = json_decode(https_request($url, $content)); error_log(var_export($res,true),3,'1.log'); }
2.回复文本消息
if ($object->ToUserName == WXUSERNAME && $object->Content == 'TESTCOMPONENT_MSG_TYPE_TEXT') { $resultStr = $this->transmitText($object, 'TESTCOMPONENT_MSG_TYPE_TEXT_callback', $funcFlag); $flage = true; return $resultStr; }
3.事件消息
case "LOCATION": // 微信全网event检测 $contentStr = $object->Event."from_callback"; break;