最近在看微信第三方全网的问题,然后看了下微信官方文档,在这里就不吐槽官方文档写太简单了。
自己摸索后终于研究出来了。废话不多说,直接上部分代码。
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;
这都根据微信官网要有返回的信息。