PHP微信公众平台自定义菜单响应事件,想知道如何才能通过key值点击响应(回复内容或者链接)源码如下

<?php;header("Content-type:text/html;charset=utf-8");header("Content-type:text/html;c... <?php

;header("Content-type: text/html; charset=utf-8");
header("Content-type: text/html; charset=gb2312");

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx80707459238738c4&secret=4cb8dc6a99889cbb3a9e8c3287e3cfa9";

$content = file_get_contents($url);

$info = json_decode($content);

print_r($info);

echo $info->access_token;

$ACCESS_TOKEN=$info->access_token;

$data = '{
"button":[
{
"type":"click",
"name":"Find",
"key":"find"
},
{
"type":"click",
"name":"Check",
"key":"lock_acount"
},
{
"type":"click",
"name":"About",
"key":"other"
}]
}';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$ACCESS_TOKEN}");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Errno'.curl_error($ch);
}

curl_close($ch);
var_dump($tmpInfo);

?>
展开
 我来答
cx1982420
推荐于2017-11-26 · TA获得超过1358个赞
知道小有建树答主
回答量:741
采纳率:100%
帮助的人:336万
展开全部
以下为获取微信返回的数据
 
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//返回回复数据  
    if (!empty($postStr))
    {
      $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'){  //订阅事件
          #要返回的消息
        }elseif ($MsgEvent=='CLICK'){  //点击菜单
          //点击事件  
          $EventKey = $postObj->EventKey;//菜单的自定义的key值,可以根据此值判断用户点击了什么内容,从而推送不同信息  
        switch($EventKey){
           case "find" :  //菜单中key相关值
            #返回的消息
            break;
            case "lock_acount":
              #返回的消息
              break;
            case "other":
              #返回的消息
              break;
          }
        }
      }
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式