公众号自定义菜单开发实例
2020-07-14 06:29
369 查看
不卖关子,直接按着代码来。
一,首先需要创建菜单栏(代码可以直接拿过去用)。
$json = file_get_contents("static/train/button-config.json"); $data = json_decode($json, true); if (count($data) > 3) { return null; } $access_token = BaseCommon::get_access_token(); // return json(['code'=>'0','msg'=>$access_token]); $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $access_token; $return_data = post_curl($url, $json); return $return_data;
BaseCommon继承的文件
public static function get_access_token(){ $module = request()->module(); $access_token_key = 'access_token'; $redis_obj = redis(); if(empty($redis_obj->get($access_token_key))){ $url_param='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential'.'&appid='.EVERY_APPID.'&secret='.EVERY_SECRET; $wx_data_json=post_curl($url_param); $wx_data=json_decode($wx_data_json,true); if( isset($wx_data['access_token']) ){ //存储 $redis_obj = redis(); $redis_obj->set($access_token_key,$wx_data['access_token'],7000); $access_token = $wx_data['access_token']; }else{ $access_token = $redis_obj->get($access_token_key); } return $access_token; }
定义菜单的json文件(根据自己项目需要存放可访问页面或者小程序)
{ "button": [ { "name": "用户端入口", "sub_button": [ { "type": "view", "name": "健康宝", "url": "访问目录路径" } ] }, { "type": "click", "name": "健康微商城", "key": "FULI" }, { "name": "医生端入口", "sub_button": [ { "type": "view", "name": "医生工作台", "url": "存放加载路径" } ] } ] }
至此自定义菜单就完成了。
下一步需要做消息自动回复 可查看微信官方文档
在配置服务器的方法里加入代码,回去微信回调数据
// 获取微信回调的数据 $notifiedData = file_get_contents('php://input'); //XML格转换 $xmlObj = simplexml_load_string($notifiedData, 'SimpleXMLElement', LIBXML_NOCDATA); $this->doPush($xmlObj);
回复消息配置科参考文档。
$type=$postObj->MsgType;//获取消息类型 $msgType = "text";//回复消息类型 $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; switch ($type){ case "image": $contentStr='您发送了一个图片消息'; break; case "voice": $contentStr="您发送了一个语音消息"; break; case "location": $contentStr = "您发送了一个地理位置"; break; }
根据需要整合一下。
相关文章推荐
- 微信公众账号开发教程(四)自定义菜单(含实例源码)——转自http://www.cnblogs.com/yank/p/3418194.html
- 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例
- [014]微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- 微信公众帐号开发教程第13篇-自定义菜单的创建及菜单事件响应
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- 微信公众平台开发教程(五)自定义菜单(含实例源码)
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- 【微信易信公众平台开发】创建自定义菜单
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- [039] 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
- 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
- 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
- 微信公众帐号自定义菜单创建及事件响应开发教程 附java源代码
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- [039] 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页) .
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
- 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
- 微信公众平台服务号自定义菜单开发代码实例