微信开发 自定义菜单php_php开发微信自定义菜单 - CSDN
  • 参考微信开发接口:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 表格结构: 主菜单: 二级菜单: 思路:通过存储的appid和appsecret获取access_token->通过存储的菜单拼接提交的body->...

    参考微信开发接口: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;
    
            }
    
        }
    
    }
    
    ?>

    展开全文
  • 微信接口自定义菜单在线客服微信支付
  • 微信开发自定义回复文本&lt;?php namespace Home\Controller; use Think\Controller; use LaneWeChat\Core\Curl; class AutoreplyController extends Controller { private $mp; public function _initialize...

    微信开发自定义回复文本

    <?php
    namespace Home\Controller;
    use Think\Controller;
    use LaneWeChat\Core\Curl;
    
    class AutoreplyController extends Controller
    {
    	private $mp;
    	public function _initialize(){
    		$mp = getCurrentMp();
    		if(empty($mp)){
    			$this->error('无使用的公众号',U('mp/index'));
    			exit;
    		}else{
    			$this->mp = $mp;
    		}
    	}
    
    	public function index(){
             $this->display('replytext');
    	}
    	//回复文本消息
    	public function replytext(){
    		$data['content'] = I('content');
    		$replyid = M('mp_reply_text')->add($data);
    		if($replyid){
    		$mp = $this->mp;
    		$arr['mp_id'] = $mp['id'];
    		$arr['type'] = 'text';
    		$arr['keyword'] = I('keyword');
    		$arr['reply_id'] = $replyid;
    
    		$ret = M('mp_rule')->add($arr);
    		if($ret){
    			$this->ajaxReturn(array('msg'=>'添加成功','url'=>U('keyword',['type'=>'text'])));
    		}else{
    				$this->ajaxReturn(array('msg'=>$ret));
    			
    		}
    		}else{
    				$this->ajaxReturn(array('msg'=>$ret));
    		}
    	}
    }

    自定义菜单点击文本回复在wechatquest.php中设置为

     public static function eventClick(&$request){
            //获取该分类的信息
            $eventkey = $request['eventkey'];
            $request['content'] = $eventkey;
            return self::text($request);
            // $content = '收到点击菜单事件,您设置的key是' . $eventKey;
            // return ResponsePassive::text($request['fromusername'], $request['tousername'], $content);
        }

    展开全文
  • 微信公众号开发5-自定义菜单-微信开发php讲师介绍: 秦子恒,CEO/董事长/总经理,大秦电商创始人,专注网络技术的电商应用。已经出品《1小时快速建站》《微博...内容包含微信添加菜单,获取自定义菜单配置,删除...

    微信公众号开发5-自定义菜单-微信开发php

    讲师介绍: 
    秦子恒,CEO/董事长/总经理,大秦电商创始人,专注网络技术的电商应用。已经出品《1小时快速建站》《微博营销实战》《PHP采集》《网络招商系统》

    课程介绍: 
    微信公众平台开发之自定义菜单管理是子恒老师《微信公众平台开发》视频教程的第5部。详细讲解了用php开发微信,对微信公众平台中的自定义管理开发。内容包含微信添加菜单,获取自定义菜单配置,删除菜单等等。欢迎反馈,微信/QQ:68183131

    课程特色: 
    专属答疑+课件资料提供+视频无限时回放+VIP交流群

    开课时间: 
    随到随学,自由支配

    点我试看: http://edu.csdn.net/course/detail/2953?utm_source=blog11

    展开全文
  • 微信公众平台自定义菜单PHP开发
                   

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

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

    回调URL(config.php)代码:

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

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    展开全文
  • 微信开发自定义菜单

    2017-07-12 14:19:42
    微信开发的过程中,我们发现有很多的权限我们个人的订阅号是没有的,所以呢,我们采用测试号来进行开发。测试号有它自己的ID和密码,有自己的URL绑定地址以及绑定域名的地方,注意绑定域名不要加http://,只包括自己...

    微信开发的过程中,我们发现有很多的权限我们个人的订阅号是没有的,所以呢,我们采用测试号来进行开发。测试号有它自己的ID和密码,有自己的URL绑定地址以及绑定域名的地方,注意绑定域名不要加http://,只包括自己的域名,例如 xx.duapp.com  其余什么都不要。


    下面是JSSDK中对于php语言的sample.phpde 的改写内容,注意,需要修改的只有APPID 和APPSECRET(从测试号赋值过来即可)。另外一点注意,如果你的accesstoken是调用一次API就获取一次的话,那么尽量只自己测试,权限次数虽然写着2000,但是实际只有100次左右,不要让太多的人频繁的点击测试。

    测试录音接口需要将音频的id传递给playvoice,需要设置一个变量,进行传递~~~


    <?php
    require_once "jssdk.php";
    $jssdk = new JSSDK("你的appid", "你的APPsecret");
    $signPackage = $jssdk->GetSignPackage();
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initital-scale=1">
      <title>腾讯API</title>
    </head>
    <body>
      <button id="btn">点击显示总部</button>
      <button id="ve1">开始录音</button>
      <button id="ve2">停止录音</button>
      <button id="ve3">播放录音</button>
      
    </body>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    <script>

      /*
       * 注意:
       * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
       * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
       * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
       *
       * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
       * 邮箱地址:weixin-open@qq.com
       * 邮件主题:【微信JS-SDK反馈】具体问题
       * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
       */
      wx.config({
        debug: true,
        appId: '<?php echo $signPackage["appId"];?>',
        timestamp: <?php echo $signPackage["timestamp"];?>,
        nonceStr: '<?php echo $signPackage["nonceStr"];?>',
        signature: '<?php echo $signPackage["signature"];?>',
        jsApiList: [
          // 所有要调用的 API 都要加到这个列表中
     
     "onMenuShareAppMessage",
     "openLocation",
     "startRecord",
     "stopRecord",
     "playVoice"
     
        ]
      });
      wx.ready(function () {
        // 在这里调用 API
    wx.onMenuShareAppMessage({
        title: '分享标题', // 分享标题
        desc: '分享描述', // 分享描述
        link: 'http://www.baidu.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl: 'http://1995zp.duapp.com/demo.jpg', // 分享图标
        type: 'link', // 分享类型,music、video或link,不填默认为link
        dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
        success: function () { 
            // 用户确认分享后执行的回调函数
    alert("ok");
        },
        cancel: function () { 
            // 用户取消分享后执行的回调函数
    alert("false");
        }
    });
    document.getElementById("btn").onclick = function(){
    wx.openLocation({
             latitude: 65.4, // 纬度,浮点数,范围为90 ~ -90
            longitude: 70.7, // 经度,浮点数,范围为180 ~ -180。
             name: '北京', // 位置名
            address: '北京昌平区金利全D区', // 地址详情说明
            scale: 20, // 地图缩放级别,整形值,范围从1~28。默认为最大
             infoUrl: 'http://wwww.baidu.com/' // 在查看位置界面底部显示的超链接,可点击跳转
           });

    }

    var ve1 = document.getElementById("ve1");
            var ve2 = document.getElementById("ve2");
            var ve3 = document.getElementById("ve3");
            ve1.onclick = function () {
                wx.startRecord();
            }
            var vv = null;
            ve2.onclick = function () {
                wx.stopRecord({
                    success: function (res) {
                        var localId = res.localId;
                        vv = localId;
                    }
                });
            }
            ve3.onclick = function () {
                wx.playVoice({
                    localId: vv // 需要播放的音频的本地ID,由stopRecord接口获得
                });
            }



    });
    </script>
    </html>



    展开全文
  • *PS:有效Token 需要 在微信 IP白名单 配置相应 IP地址 */ https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&amp;appid=appid&amp;secret=secret    function settoken($val) ...
  • 环境要求:PHP5.3+ 这里只实现view类型的按钮,其他的请自行修改,代码如下: &lt;?php header('Content-type:text/html; Charset=utf-8'); $appid='xxxxx'; //你的appid $appsecret='xxxxx'; //你的app密钥 $...
  • <?php //ID 密钥 $appid = "wx5502a933452cecf0"; $appsecret = "c7fd97ec7ce4ec3c5f2766b89d97512c"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$...
  • 今天说一下自定义菜单模块 配置问题之前已经说了,这里就不重复了 一、后台自定义菜单管理 后台添加菜单 自定义菜单的数据字典 DROP TABLE IF EXISTS `ys_wx_menu`; CREATE TABLE `ys_wx_menu` ( `id` int...
  • 微信开发 自定义菜单 菜单事件推送
  • 一、自定义菜单概述 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。开启自定义菜单后,公众号界面如图所示: 二、申请自定义菜单 个人订阅号使用微博认证、企业订阅号通过...
  • 一步一步完全按照步骤,轻松在微信公众号自定义菜单中添加图标。  第一步:打开PHP网页列表 http://code.iamcal.com/php/emoji/第二步:选择代码表中softbank列代码,复制,例如U+E536    ...
  • PHP微信公众号开发--自定义菜单 获取access_token,用到php的curl方法! get private function http_request(string $url) { $ch = curl_init(); //设置请求的url curl_setopt($ch, CURLOPT_URL, $url); ...
  • 三、去获取 access_token,应用 id 在 微信企业号开发平台《应用中心》的对应应用里。但是获取 access_token 还需要 corpid 和 corpsecret。四、获取 access_token 还需要 corpid 和 corpsecret。要去权限管理创建
  • 微信的小程序交给有赞开发,由微信手册,菜单跳小程序需要如下配置: [  "type" => "miniprogram",  "name" => "xxx",  "url" => "xxx",  "appid" => "小程序的appid",  "pagepath" => ...
  • 请先读完本文再进行配置开发 ...如何在微信自定义菜单中将用户导航到个人中心页面呢? 首选需要通过用户点击获取用户openid,而通过用户的点击跳转获取用户openid就必须在菜单中动态绑定用户的openid,或者
  • 不过现在个人订阅号是不可以使用高级开发者模式的,如自定义菜单,不过我们还是可以通过测试号来测试一下,然后移代码到服务号。 自定义类型包括如下: 1、click:点击推事件 • 用户点击click类型按钮后,微信...
  • 创建自定义菜单,实现菜单事件。 首先获取Access_Token 接口: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 然后配置菜单的事件,caidan.php <...
  • 注意: 1)创建菜单所调用的接口 https://api.weixin.qq.com/cgi-bin/menu/create?access_token=xxxxxxx 是在创建菜单的页面代码中所调用的...开发者需要调用的是创建菜单的页面(在浏览器输入页面地址或者其他地...
1 2 3 4 5 ... 20
收藏数 4,540
精华内容 1,816
关键字:

微信开发 自定义菜单php