加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 教程 > 正文

php实现微信公众平台账号自定义菜单类

发布时间:2022-06-22 08:52:04 所属栏目:教程 来源:互联网
导读:这篇文章主要介绍了php实现微信公众平台账号自定义菜单类的方法,涉及针对微信接口API的二次开发,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了php实现微信公众平台账号自定义菜单类的方法。分享给大家供大家参考。具体分析如下: 微信公众平台服务
  这篇文章主要介绍了php实现微信公众平台账号自定义菜单类的方法,涉及针对微信接口API的二次开发,是非常实用的技巧,需要的朋友可以参考下
 
  本文实例讲述了php实现微信公众平台账号自定义菜单类的方法。分享给大家供大家参考。具体分析如下:
 
  微信公众平台服务号可申请自定义菜单了,其它的号暂时不支持自定义菜单了,这个不但可以使用api来操作,还可以直接在后台定义菜单与参数。
 
  申请自定义菜单
 
  服务号可以申请自定义菜单,使用QQ登录的公众号,可以升级为邮箱登录,使用邮箱登录的公众号,可以修改登录邮箱,群发消息可以同步到腾讯微博.
 
  微信公众平台账号api程序,代码如下:
 
  <?php
  //define your token
  define("TOKEN", "chenxiang");//改成自己的TOKEN
  define('APP_ID', '');//改成自己的APPID
  define('APP_SECRET', '');//改成自己的APPSECRET
   
  $wechatObj = new wechatCallbackapiTest(APP_ID,APP_SECRET);
  $wechatObj->Run();
   
  class wechatCallbackapiTest
  {
      private $fromUsername;
      private $toUsername;
      private $times;
      private $keyword;
      private $app_id;
      private $app_secret;
       
      public function __construct($appid,$appsecret)
      {
          # code...
          $this->app_id = $appid;
          $this->app_secret = $appsecret;
      }
      public function valid()
      {
          $echoStr = $_GET["echostr"];
          if($this->checkSignature()){
              echo $echoStr;
              exit;
          }
      }
      /**
       * 运行程序
       * @param string $value [description]
       */
      public function Run()
      {
          $this->responseMsg();
          $arr[]= "您好,这是自动回复,我现在不在,有事请留言,我会尽快回复你的^_^";
          echo $this->make_xml("text",$arr);
      }
      public function responseMsg()
      {    
          $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//返回回复数据
          if (!emptyempty($postStr)){
                  $access_token = $this->get_access_token();//获取access_token
                  $this->createmenu($access_token);//创建菜单
                  //$this->delmenu($access_token);//删除菜单
                  $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                  $this->fromUsername = $postObj->FromUserName;//发送消息方ID
                  $this->toUsername = $postObj->ToUserName;//接收消息方ID
                  $this->keyword = trim($postObj->Content);//用户发送的消息
                  $this->times = time();//发送时间
                  $MsgType = $postObj->MsgType;//消息类型
                  if($MsgType=='event'){
                      $MsgEvent = $postObj->Event;//获取事件类型
                      if ($MsgEvent=='subscribe') {//订阅事件
                          $arr[] = "你好,我是xxx,现在我们是好友咯![愉快][玫瑰]";
                          echo $this->make_xml("text",$arr);
                          exit;
                      }elseif ($MsgEvent=='CLICK') {//点击事件
                          $EventKey = $postObj->EventKey;//菜单的自定义的key值,可以根据此值判断用户点击了什么内容,从而推送不同信息
                          $arr[] = $EventKey;
                          echo $this->make_xml("text",$arr);
                          exit;
                      }
                  }
          }else {
              echo "this a file for weixin API!";
              exit;
          }
      }
      /**
       * 获取access_token
       */
      private function get_access_token()
      {
          $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->app_id."&secret=".$this->app_secret;
          $data = json_decode(file_get_contents($url),true);

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读