微信全网发布 返回api文本消息、普通消息、事件消息失败

微信全网发布 返回api文本消息、普通消息、事件消息失败_第1张图片最近在看微信第三方全网的问题,然后看了下微信官方文档,在这里就不吐槽官方文档写太简单了。

自己摸索后终于研究出来了。废话不多说,直接上部分代码。

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;

这都根据微信官网要有返回的信息。

你可能感兴趣的:(微信公众号,第三方平台授权,全网发布)