微信公众号开发--公众号关注推送配置与菜单配置

用户关注公众号回调

AppID:开发者ID,微信公众号的唯一标识
AppSecret:开发者密码,操作微信公众号的验证
IP白名单:获取access_token时,需要IP白名单才可以获取
OpenID:微信用户在当前公众号的唯一标识
UnionID:微信用户在当前开放平台账号的所有公众号和应用情景下的唯一标识
服务器配置:
URL(地址):配置以后,用户对公众号的操作(关注、发消息),微信会转到该链接
Token(令牌):用作生成签名
EncodingAESKey(密钥):消息加密
需要验证token:参考 微信开发文档
微信公众号开发--公众号关注推送配置与菜单配置_第1张图片
请一定要将微信后台的开发者模式 “启用” !!看到红色 “停用” 才真正的是启用了。
启用后公众号的菜单只能通过代码控制,不能通过微信公众号配置。
微信公众号菜单配置文档

创建菜单部分代码:
$buttons = [
            [
                "type" => "view_limited", 
                "name" => "故事",
                "media_id"  => "" //图文故事 media_id 通过访问素材管理接口拿到media_id
            ],
            [
                "name"       => "我的",
                "sub_button" => [
                    [
                        "type" => "click",
                        "name" => "联系",
                        "key"  => "contact_us" //联系 用户点击联系 返回文字提示的需要单独配置
                    ],
                    [
                        "type" => "view",
                        "name" => "信息",
                        "url" => "http://www.xxxx.com" //
                    ],
                ],
            ],
        ];
  关注公众号和自定义点击菜单如(联系)  部分代码
    $app->server->push(function ($message) {
             switch ($message['MsgType']) {
                 case 'event':
                     $openid=empty($message['FromUserName'])?'':$message['FromUserName'];
                     if($message['Event']=='subscribe'){ //关注公众号
                         if(!self::CheckFllow($openid)){
                             return '您好!欢迎关注xxxx;
                         }
                     }elseif($message['Event']=='unsubscribe'){ //取消关注公众号

                     }elseif ($message['Event']=='CLICK') {//菜单点击事件
                         if($message['EventKey']=='contact_us'){ //点击联系返回的信息
                            #文本换行必须用双引号
                             return "固定联系电话:\n xxxxx\n\n工作时间:\nxxxxxx";
                         }

                     }elseif ($message['Event']=='VIEW') {//连接跳转事件

                     }
                     return '';
                     break;
                 case 'text': //收到文字消息
                     return '';
                     break;
                 case 'image': //收到图片消息
                     return '';
                     break;
                 case 'voice': //收到语音消息
                     return '';
                     break;
                 case 'video': //收到视频消息
                     return '';
                     break;
                 case 'location': //收到坐标消息
                     return '';
                     break;
                 case 'link': //收到链接消息
                     return '';
                     break;
                 case 'file': //收到文件消息
                     return '';
                     break;
                 default: //收到其它消息
                     return '';
                     break;
             }
        });

你可能感兴趣的:(微信开发)