微信开发(二)自定义菜单

概述:

通过get方法调用微信接口,创建菜单,菜单可以响应点击、跳转页面、打开二维码扫描器等。

目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。

结果:


步骤:

1. 调用接口获得通讯Token

2. 调用接口创建自定义菜单

3. 响应自定义菜单操作

实现:

1. 调用接口获得通讯Token

首先从公众平台管理后台得到AppID, AppSecret

其次服务器上创建php文件(menu.php),先编写通过CURL提交请求的函数:

//=>封装的https请求函数
function https_request($url, $data = null, $method = 'GET'){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
	if($method != 'GET'){
		if (!empty($data)){
			curl_setopt($curl, CURLOPT_POST, 1);
			curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
		}
	}
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    curl_close($curl);
    return $result;
}
//<=封装的https请求函数

获得Token的代码如下:

//填写自己公众号的appid
$appid="**********";
//填写自己公众号的secret
$secret="******************";
//构造Get请求URL
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
//通过CURL提交GET请求
$result = https_request($url);
//解码JSON数据
$strjson=json_decode($result);
//获得Token
$token = $strjson->access_token;

 2. 调用接口创建自定义菜单 
 

menu.php中加入创建自定义菜单的代码:

//菜单name数组
$menuName = array('百度', '精彩活动', '扫二维码', '问卷调查');
//URL编码,解决中文在进行JSON转码时出现乱码问题
foreach ( $menuName as $key => $value ) {   
	$menuName[$key] = urlencode ( $value );   
}
//菜单数组   
$weixinMenu = array(
	'button' => array(
			array('type' => 'view', 'name' => $menuName[0], 'url' => 'http://www.baidu.com/'),
			array('name' => $menuName[1], 'sub_button' => array(
				array('type' => 'scancode_push', 'name' => $menuName[2], 'key' => 'M2001_SM', 'sub_button' => array()),
				array('type' => 'view', 'name' => $menuName[3], 'url' => 'http://www.sina.com.cn/')
				)
				)
		)
		
);
//对菜单数组JSON编码,并进行URL解码
$weixinMenu = urldecode(json_encode($weixinMenu));
//自定义菜单创建接口
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$token;
//通过CURL提交POST请求
$result = https_request($url, $weixinMenu, 'POST');

3. 执行该PHP代码,创建自定义菜单;

我是直接创建在服务器web目录下,因此直接浏览器访问 http://www.**.com/menu.php

可以最后加上echo $result; 看到返回结果:


注:重新关注公众号可以马上看到结果;自定义菜单的其他类别及参数,请参看微信官网-自定义菜单;以及查看官方返回码说明

4. 响应微信菜单操作

关于菜单响应,有篇文章写得很好,程序封装也不错,我就不再赘述。

微信菜单响应教程

猜你喜欢

转载自blog.csdn.net/hanjingjava/article/details/41682963