php微信开发之自定义菜单实现


Posted in PHP onNovember 18, 2016

编辑模式和开发模式是有冲突的。所以我们启用微信公众号的开发模式之后,那些菜单是看不到的哦。不过现在个人订阅号是不可以使用高级开发者模式的,如自定义菜单,不过我们还是可以通过测试号来测试一下,然后移代码到服务号。 

自定义类型包括如下:

1、click:点击推事件
• 用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;

2、view:跳转URL
• 用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。

3、scancode_push:扫码推事件
• 用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。

4、scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框
• 用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。

自定义类型包括如下:

5、pic_sysphoto:弹出系统拍照发图用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片
发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。

6、pic_photo_or_album:弹出拍照或者相册发图用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。

7、pic_weixin:弹出微信相册发图器用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发
送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。

提供代码,只要上传代码到服务器,重新关注公众号就可以看到开发模式下的自定义菜单

$appid = '微信公众号的appid'; 
$appsecret = '微信公众号的appsecret'; 
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret=$appsecret"; 
$output = https_request($url); 
$jsoninfo = json_decode($output,true); 
$access_token = $jsoninfo["access_token"]; 
$jsonmenu = '{ 
  "button":[ 
  { 
   "name":"学校系统", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"课程表", 
     "key":"课程表" 
    }, 
    { 
     "type":"click", 
     "name":"个人信息", 
     "key":"个人信息" 
    }, 
    { 
     "type":"click", 
     "name":"平时成绩", 
     "key":"平时成绩" 
    }, 
    { 
     "type":"click", 
     "name":"奖惩记录", 
     "key":"奖惩记录" 
    } 
   ] 
  }, 
  { 
   "name":"技术分享", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"移动WEB开发", 
     "key":"移动WEB开发" 
    }, 
    { 
     "type":"click", 
     "name":"J2EE框架", 
     "key":"J2EE框架" 
    }, 
    { 
     "type":"click", 
     "name":"Android开发", 
     "key":"Android开发" 
    }, 
    { 
     "type":"click", 
     "name":"PHP框架", 
     "key":"PHP框架" 
    } 
   ] 
  },{ 
   "name":"技术支持", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"在线客服", 
     "key":"在线客服" 
    }, 
    { 
     "type":"click", 
     "name":"技术分享", 
     "key":"技术分享" 
    }, 
    { 
     "type":"view", 
     "name":"天气预报", 
     "url":"http://m.hao123.com/a/tianqi" 
    } 
   ] 
  } 
 
 ] 
 }'; 
 
 
 //创建菜单实现 
 $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token; 
 $result = https_request($url,$jsonmenu); 
 var_dump($result); 
 function https_request($url,$data = null){ 
  $curl = curl_init(); 
  curl_setopt($curl,CURLOPT_URL,$url); 
  curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0); 
  curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0); 
  if(!empty($data)){ 
   curl_setopt($curl,CURLOPT_POST,1); 
   curl_setopt($curl,CURLOPT_POSTFIELDS,$data); 
  } 
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
  $output = curl_exec($curl); 
  curl_close($curl); 
  return $output; 
 }

php微信开发之自定义菜单实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
PHP+DBM的同学录程序(2)
Oct 09 PHP
站长助手-网站web在线管理程序 v1.0 下载
May 12 PHP
php getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
php利用iframe实现无刷新文件上传功能的代码
Sep 29 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
php服务器的系统详解
Oct 12 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 PHP
php微信开发之百度天气预报
Nov 18 #PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 #PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 #PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 #PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 #PHP
PHP二维数组去重实例分析
Nov 18 #PHP
浅谈php fopen下载远程文件的函数
Nov 18 #PHP
You might like
解读PHP中的垃圾回收机制
2015/08/10 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
django最快程序开发流程详解
2019/07/19 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
Python实现打印实心和空心菱形
2019/11/23 Python
浅谈Python 函数式编程
2020/06/20 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
Weblogc domain问题
2014/01/27 面试题
鲜花方阵解说词
2014/02/13 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
督导岗位职责范本
2015/04/10 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL