文档章节

微信公众平台自定义菜单PHP开发

xinson
 xinson
发布于 2014/06/24 13:55
字数 541
阅读 492
收藏 4
点赞 0
评论 0

微信公众平台自定义菜单PHP开发,微信公众平台自定义菜单是如何实现的呢?其实很简单,首先在微信公众平台升级为服务号,获取appid和 appsecret,然后根据这2个参数获取access_token,在根据access_token,post一串字符到微信服务器就可以了。代码如 下:

回调URL(config.php)代码:

define(AppId, "wx1234567890abcdef");//定义AppId,需要在微信公众平台申请自定义菜单后会得到
 
define(AppSecret, "1234567890abcdefghijklmnopqrstuv");//定义AppSecret,需要在微信公众平台申请自定义菜单后会得到
 
include("wechat.class.php");//引入微信类
 
$wechatObj = new Wechat();//实例化微信类
 
$creatMenu = $wechatObj->creatMenu();//创建菜单

微信类(wechat.class.php)代码

class Wechat
 {
 private function getAccessToken() //获取access_token
 {
 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppId."&secret=".AppSecret;
 $data = getCurl($url);//通过自定义函数getCurl得到https的内容
 $resultArr = json_decode($data, true);//转为数组
 return $resultArr["access_token"];//获取access_token
 }
 
public function creatMenu()//创建菜单
 {
 $accessToken = $this->getAccessToken();//获取access_token
 $menuPostString = '{//构造POST给微信服务器的菜单结构体
 "button":[
 {
 "name":"常用",
 "sub_button":[
 {
 "type":"click",
 "name":"每日考勤",
 "key":"1100"
 },
 {
 "type":"click",
 "name":"领卡申请",
 "key":"3100"
 },
 {
 "type":"click",
 "name":"短信申请",
 "key":"3200"
 },
 {
 "type":"click",
 "name":"商户曝光",
 "key":"2100"
 },
 {
 "type":"click",
 "name":"商户质检",
 "key":"2200"
 }
 ]
 },
 {
 "name":"我的",
 "sub_button":[
 {
 "type":"click",
 "name":"我的考勤",
 "key":"1101"
 },
 {
 "type":"click",
 "name":"我的曝光",
 "key":"2101"
 },
 {
 "type":"click",
 "name":"我的质检",
 "key":"2201"
 },
 {
 "type":"click",
 "name":"我的锁定",
 "key":"2001"
 }
 ]
 },
 {
 "name":"数据",
 "sub_button":[
 {
 "type":"click",
 "name":"消费数据",
 "key":"6101"
 },
 {
 "type":"click",
 "name":"激活数据",
 "key":"6102"
 },
 {
 "type":"click",
 "name":"POS手册",
 "key":"4100"
 },
 {
 "type":"click",
 "name":"微信指令",
 "key":"0009"
 }
 ]
 }]
 }';
 $menuPostUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$accessToken;//POST的url
 $menu = dataPost($menuPostString, $menuPostUrl);//将菜单结构体POST给微信服务器
 }
 }
 
function getCurl($url){//get https的内容
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL,$url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
 $result =  curl_exec($ch);
 curl_close ($ch);
 return $result;
 }
 
function dataPost($post_string, $url) {//POST方式提交数据
 $context = array ('http' => array ('method' => "POST", 'header' => "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) \r\n Accept: */*", 'content' => $post_string ) );
 $stream_context = stream_context_create ( $context );
 $data = file_get_contents ( $url, FALSE, $stream_context );
 return $data;
 }


本文转载自:http://www.cnblogs.com/GmrBrian/p/3593070.html

共有 人打赏支持
xinson
粉丝 15
博文 132
码字总数 29814
作品 0
广州
程序员
PHP实现微信公众平台开发 全套视频资源下载

好久没有更新东西了,今天给大家分享一份比较不错的视频学习资源吧. 主要是关于PHP实现微信公众平台开发, 不知道大家对于微信平台的开发有多少了解,那么今天就从基础开始吧,资源目录如下(PS :...

VIP_web ⋅ 2016/09/19 ⋅ 0

微信公众平台开发自定义菜单功能开发

一、简介 微信公众平台服务号以及之前成功申请内测资格的订阅号都具有自定义菜单的功能。开发者可利用该功能为公众账号的会话界面底部增加自定义菜单,用户点击菜单中的选项,可以调出相应的...

hengfeng_su ⋅ 2013/12/02 ⋅ 0

微信公众平台开发教程新手解惑40则

【编者按】由CSDN和《程序员》杂志联合主办的 2014年微信开发者大会 将于8月23日在北京举行,邀请了来自于一线的微信开发商技术负责人或资深工程师从企业应用开发高级篇、智能客服与LBS、微信...

DavidBao ⋅ 2015/04/29 ⋅ 0

微信公众平台如何创建自定义菜单?

微信现在的功能越来越强大了,申请认证后的开发者能自定义菜单,用户直接点击微信界面下方的菜单,就能直接去到指定的页面,下面小编用【微信公众平台测试号】为大家演示一下怎么创建自定义菜...

DavidBao ⋅ 2015/04/16 ⋅ 0

微信公众平台自定义菜单创建 -JAVA

微信公众平台开发之自定义菜单创建JAVA源码 创建项目添加httpclient.jar、fastjson.jar支持 专注微信公众平台app开发群:209389987 自定义菜单的问题总结: 1.自定义菜单只有服务号可以申请,...

using ⋅ 2013/09/13 ⋅ 2

微信公众平台开发框架--CakeWX

CakeWX,开源免费好用的微信公众平台开发框架 功能特色: 1. 基于CakePHP,开源免费。 2. 小巧精致,可下载源码,搭建属于自己的微信平台。 3. 简单好用的关键字,自动回复,图文,活动,自定...

niancode ⋅ 2014/05/29 ⋅ 0

微信公众号开发之自定义菜单

微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号 欢迎留言、转发 项目源码参考地址 点我点我–欢迎Start 前几篇文章已讲完如何导入项目,如何启动配置项目,如何成为开发者,...

javen205 ⋅ 2017/03/11 ⋅ 0

微信公众平台(2)-自定义菜单接口

前几日发布了nodejs搭建微信公众平台后台,今天介绍下公众平台的自定义菜单接口。 首先自定义菜单接口在刚申请的订阅号中是没有权限设置的,需要认证开通,而服务号在申请成功之后就可以自定...

雪飘七月 ⋅ 2014/10/10 ⋅ 0

麦拂沙/We_Questionnaire

项目停止维护,有问题还请各位自己解决 注:项目中部分公众号接口已过时,导致项目不可用,好像有三四个的样子。若需使用本项目,请自行调试更新相关接口的对接 Welcome to the We_Question...

麦拂沙 ⋅ 2015/07/27 ⋅ 0

请教微信自定义菜单语言识别问题

有个问题,在微信公众平台自定义菜单的开发中,如何能够做到自动识别语言显示呢?意思就是如果用户的微信是中文版,就显示中文自定义菜单,如果用户的微信是英文版,就显示英文自定义菜单。请...

殊麒 ⋅ 2013/10/17 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 45分钟前 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部