美文网首页
初试微信公众号开发+关注自动

初试微信公众号开发+关注自动

作者: theache | 来源:发表于2018-03-26 00:38 被阅读0次

今天试了试微信公众号的开发,整体下来都很简单,都坑在自己的不仔细上面了。
首先进行开发的服务器的基本配置

   public function index(Request $request){
        //获取timestamp nonce signature echostr
        $timestamp = $request->get('timestamp','');
        $nonce = $request->get('nonce','');
        $signature = $request->get('signature','');
        $echostr = $request->get('echostr','');
        $token = 'wxgzh';
        //形成字符串  字典排序
        $array = array($timestamp,$nonce,$token);
        sort($array,SORT_STRING);
        //拼接成字符串  sha1加密   并于$signature比较
        $tmp = implode('',$array);
        $tmp = sha1($tmp);
        if ($tmp == $signature && $echostr){
            echo $echostr;
            exit();
        }else{
            //关注自动回复
            $this->responseMsg();
        }
    }
微信订阅号基本配置

点击提交即可。这样就完成了微信公众号的接入。完成之后别忘记点击启用服务器配置~ 查看微信微信关注取消事件。按照文档所示返回相应的数据即可。

微信关注取消关注事件
文本消息回复事件
public function responseMsg(){
        $postArr = file_get_contents("php://input");//不支持multipart/form-data类数据
//        $postArr = $GLOBALS['HTTP_RAW_POST_DATA'];//需要开启对应的php扩展
        $postObj = simplexml_load_string($postArr);
        if (strtolower($postObj->MsgType) == 'event'){
            if (strtolower($postObj->Event) == 'subscribe'){
                $toUser = $postObj->FromUserName;
                $fromUser = $postObj->ToUserName;
                $time = time();
                $MsgType = 'text';
                $content = '欢迎关注ache的公众号';
                $tmp = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        </xml>";
                $info = sprintf($tmp, $toUser, $fromUser, $time, $MsgType, $content);
                echo $info;
            }
        }
        echo '';
    }

然后自己的公众号关注走一波。


最终效果

在编写测试过程中需要注意的是返回微信的数据是不能带空格的。在测试失败之后找了好久才发现。另外在接收关注事件的数据的时候因为是post请求关系,如果是使用框架开发的可能需要关闭csrf验证。我就是用laravel5.5来写的。死活就是收不到数据。看了文档是post请求,脑补了下才想到。

相关文章

  • 初试微信公众号开发+关注自动

    今天试了试微信公众号的开发,整体下来都很简单,都坑在自己的不仔细上面了。首先进行开发的服务器的基本配置 点击提交即...

  • 微信公众号自动回复功能开发

    微信公众号自动回复功能开发 本篇主要讲解 微信公众号自动回复功能开发,让我们自己去托管公众号回复的功能,这样可以更...

  • 微信公众号自动回复功能开发

    微信公众号自动回复功能开发 本篇主要讲解 微信公众号自动回复功能开发,让我们自己去托管公众号回复的功能,这样可以更...

  • 微信公众号如何加入超链接,如何添加被关注自动回复图文消息?

    微信公众号如何加入超链接、微信公众号如何添加被关注自动回复图文消息……?微信公众号的管理者和运营者都想设置自动回复...

  • 微信公众号自动回复注意事项

    自动回复 用户关注或发送消息至公众号时,会自动接收到微信公众号推送过来的消息。实际开发过程中,经常能碰到该公众号暂...

  • 微信公众号开发 - 关注公众号

    第一种方式:通过公众号关注页链接,完成公众号关注。(此种方式已被微信和谐) 这个方式如果是在微信中打开 可以直接跳...

  • 微信开发

    微信开发 公众号开发 微信WEB开发 JSSDK 小程序开发 公众号开发 公众号 订阅号 服务号 企业号 公众号开...

  • 微信公众号开发 (4) 网页授权

    一、前言 微信公众号开发 (1) 微信接入认证成为开发者 微信公众号开发 (2) 消息处理 微信公众号开发 (3)...

  • 微信公众号平台 微信开放平台 二者区别

    微信公众平台 即是mp平台,用于微信公众号的(订阅号,服务号,企业号)的管理,运营,并提供开发接口支持群发,自动回...

  • 微信公众号

    微信公众号开发1、公众号机器人:包括设置菜单、自动回复、推送消息2、公众号网页:即在网页中调用微信的JS-SDK;...

网友评论

      本文标题:初试微信公众号开发+关注自动

      本文链接:https://www.haomeiwen.com/subject/tyclcftx.html