php发送公众服务号推送消息

10 篇文章 0 订阅

php发送服务号推送消息

注意: 编写发送消息之前需要在微信公众平台后台左边菜单找到基本配置 然后开启服务器配置

public function SendMsg()
    {
//      $postStr = $this->inputRequest('HTTP_RAW_POST_DATA');//使用的是php7取消了这个变量 需要用下面的这个获取到数据
        $postStr = file_get_contents("php://input");
        //  如果获取到数据之后 就进行下面的程序进行判断
        if (!empty($postStr)){
            libxml_disable_entity_loader(true);
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $msgType = $postObj->MsgType;//消息类型
            $event = $postObj->Event;//时间类型,subscribe(订阅)、unsubscribe(取消订阅)
            $textTpl = "<xml>
                  <ToUserName><![CDATA[%s]]></ToUserName>
                  <FromUserName><![CDATA[%s]]></FromUserName>
                  <CreateTime>%s</CreateTime>
                  <MsgType><![CDATA[%s]]></MsgType>
                  <Content><![CDATA[%s]]></Content>
                  <FuncFlag>0</FuncFlag>
                  </xml>";
            switch($msgType){
            //  这个是关注的时候发送的消息
                case "event":
                    if($event=="subscribe"){
                    // 获取token值
                            $this->get_access_token();
                            $access_token = $this->access_token;//  token 值
                            $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$fromUsername&lang=zh_CN";
                            $res = file_get_contents($url);
                              //   这个是用户的消息  包括  open  unionid  nickname(昵称)  city(城市) sex(性别)  subscribe_time(关注时间)
                            $rest  = json_decode($res,true);
                        }
                       //  这个是关注之后需要给用户发送的内容
                        $contentStr = "";
                    }
                    break;
                    // 这个是用户回复消息的时候发送的内容  可以自定义内容  用户回复的消息内容是上面的$keyword 
                case "text":
						 $contentStr = "";
                    break;
            }
            $msgType = "text";
            $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
            echo $resultStr;
        }else {
        //  如果没有获取到内容的话 就直接输出空字符串
            echo "";
            exit;
        }
    }
    ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值