php 微信3 自定义菜单

1.申请成为服务号
2.申请自定义菜单,得到appid和appsecert
3.用appid和appsecert获得access token
4.将菜单组织成结构,通过post提交给接口
5.在消息接口中处理event事件,其中的click代表菜单点击,通过响应菜单结构中的key值回应消息




static function createMean($access_token){
		$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;
		$data = '{
		     "button":[
		     {
		     	 	"name":"公司信息",
				"sub_button":[
					{
					"type":"click",
					"name":"公司介绍",
					"key":"wx_company"
					},
					{
					"type":"click",
					"name":"联系我们",
					"key":"wx_contact"
					}
				]
			},
			{
				"name":"供应产品",
				"sub_button":[
					{
					"type":"click",
					"name":"分类一",
					"key":"wx_sell_1"
					},
					{
					"type":"click",
					"name":"分类二",
					"key":"wx_sell_2"
					},
					{
					"type":"click",
					"name":"分类三",
					"key":"wx_sell_3"
					}
				]
			},
			{
				"type":"click",
				"name":"新闻中心",
				"key":"wx_news"
			}]
		 }';
		self::post($url,$data);
	}
	
	/**
	* POST 请求指定URL
	*创建一个菜单的时候也可以模拟一次提交
	*/
	static function post($url,$data) { // 模拟提交数据函数
		$curl = curl_init(); // 启动一个CURL会话
		curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
		curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器
		curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
		curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包x
		curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
		curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
		$tmpInfo = curl_exec($curl); // 执行操作
		if (curl_errno($curl)) {
			echo 'Errno'.curl_error($curl);//捕抓异常
		}
		curl_close($curl); // 关闭CURL会话
		return $tmpInfo; // 返回数据
	}

5.参考的网上的,我直接if判断获取信息

private function receiveEvent($object)
    {
        $contentStr = "";
        switch ($object->Event)
        {
            case "subscribe":
                $contentStr[] = array("Title" =>"欢迎关注方倍工作室", "Description" =>"点击图片关注或者搜索号码beancube", "PicUrl" =>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"weixin://addfriend/beancube");
            case "unsubscribe":
                $contentStr = "";
                break;
            case "CLICK":
                switch ($object->EventKey)
                {
                    case "company":
                        $contentStr[] = array("Title" =>"公司简介", "Description" =>"方倍工作室提供移动互联网相关的产品及服务,包括新浪微博应用、微信公众平台接口、手机版网站等", "PicUrl" =>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"weixin://addfriend/beancube");
                        break;
                    default:
                        $contentStr[] = array("Title" =>"默认菜单回复", "Description" =>"您正在使用的是方倍工作室的自定义菜单测试接口", "PicUrl" =>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"weixin://addfriend/beancube");
                        break;
                }
                break;
            default:
                $contentStr = "receive a new event: ".$object->Event;
                break;      

       }
        return $contentStr;
    }

注意,,其中的菜单数量就是3个, 多了都会出现错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值