thinkphp调用微信接口完成自定义菜单的添加和删除
2015-04-26 15:31
711 查看
参考微信开发接口:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html
表格结构:
主菜单:二级菜单:
思路:通过存储的appid和appsecret获取access_token--->通过存储的菜单拼接提交的body--->通过微信的接口post提交
代码:<?php class WeixinAction extends Action{ //创建自定义菜单 public function create(){ $api=M('wx_weixin_inf')->find();//取出数据库中保存的appid和appsecret $url_get='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$api['wei_appID'].'&secret='.$api['wei_appSecret']; $json=json_decode(file_get_contents("$url_get")); if($api['wei_appID']==false||$api['wei_appSecret']==false){ $this->error('必须先填写【AppId】【 AppSecret】');exit;} //开始拼接数据 $data = '{"button":['; $class=M('wx_menu1_inf')->limit(3)->order('men1_order')->select();//取出顶级菜单 $k=1; foreach($class as $key=>$vo){ //主菜单 $data.='{"name":"'.$vo['men1_name'].'",'; //取出二级菜单 $c=M('wx_menu2_inf')->where(array('men1_id'=>$vo['men1_id']))->order('men2_order')->limit(5)->select(); $count=M('wx_menu2_inf')->where(array('men1_id'=>$vo['men1_id']))->limit(5)->count(); $num=1; //拼接子菜单 if($c!=false){ $data.='"sub_button":['; foreach($c as $voo){ if($num==$count) $data.='{"type":"view","name":"'.$voo['men2_name'].'","url":"'.$voo['men2_url'].'"}'; else $data.='{"type":"view","name":"'.$voo['men2_name'].'","url":"'.$voo['men2_url'].'"},'; $num++; } $data.=']'; }else{ $data.='"type":"view","url":"'.$vo['men1_url'].'"'; } if($k==3){ $data.='}'; }else{ $data.='},'; } $k++; } $data.=']}'; $url='https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$json->access_token; // P($data); //exit; file_get_contents('https://api.weixin.qq.com/cgi-bin/menu/delete?access_token='.$json->access_token); if($this->api_notice_increment($url,$data)==false){ $this->error('操作失败',U("System/defineMenu")); }else{ $this->success('操作成功',U("System/defineMenu")); } exit; } //POST提交方法 function api_notice_increment($url, $data){ $ch = curl_init(); $header = "Accept-Charset: utf-8"; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch); // p($tmpInfo); if (curl_errno($ch)) { return false; }else{ return true; } } } ?>
相关文章推荐
- 第三方平台也能为未微信认证的订阅号调用自定义菜单接口和素材管理接口
- php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
- php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
- php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
- 微信创建自定义菜单和删除自定义菜单
- 微信开发笔记-调用自定义分享接口
- python微信六自定义菜单创建和删除
- 微信开发 企业号(三)-- 主动调用(通讯录、多媒体文件、自定义菜单,下发信息)
- 自定义菜单与调用接口创建菜单
- 微信自定义菜单创建接口
- java SSM 框架 微信自定义菜单 快递接口 SpringMVC mybatis redis shiro ehcache websocket
- C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)
- java SSM 框架 微信自定义菜单 快递接口 SpringMVC mybatis redis
- 微信公共平台服务号自定义菜单接口功能介绍
- 微信公共平台服务号自定义菜单接口功能介绍
- java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源
- 微信自定义菜单 快递接口 SpringMVC mybatis redis shiro ehcache websocket
- dedecms的文章和栏目的自定义字段的添加、调用以及完全删除方法
- 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源
- java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源