【亲测有效】微信公众号设置菜单栏显示,未开启自定义菜单,微信公众平台自定义菜单接口开发

微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 服务号 自定义菜单接口API

背景:在开启“服务器配置”后,微信公众号运营人员在微信公众平台设置自定义菜单栏是提示“未开启自定义菜单”

相关链接:如何开启服务器配置 | 实现扫码关注微信公众号系统/网站自动注册登录

问题:运营人员在设置微信公众号设置菜单栏显示,未开启自定义菜单

微信公众号设置菜单栏显示,未开启自定义菜单

解决方案(微信公众平台自定义菜单接口开发):

自定义菜单-创建接口

请求链接

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

完整代码

第一步:在WeChat类里添加代码
情况一:没有WeChat类情况,如果已有请看情况二

创建WeChat类,完整代码:

<?php

namespace app\api\controller;
use think\Cache;
class WeChatJutuiguanjia
{
   

    protected $appid;
    protected $secret;
    protected $accessToken;
    /***
     * 设置微信公众号appid及secret 
     **/
    function __construct()
    {
   
        $this->appid = "";
        $this->secret = "";
        $this->accessToken = $this->getAccessToken();
    }

    /***
     * 获取access_token
     * token的有效时间为2小时,这里可以做下处理,提高效率不用每次都去获取,
     * 将token存储到缓存中,每2小时更新一下,然后从缓存取即可
     * @return
     **/
    private function getAccessToken()
    {
   
        $access_token  = Cache::get('access_token');
        if(empty($uid)){
   

            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->secret;
            $res = json_decode($this->httpRequest($url), true);
            Cache::set('access_token', $res['access_token'],60*59);
            $access_token = $res['access_token'];
        }
        return $access_token;
    }

    /***
     * POST或GET请求
     * @url 请求url
     * @data POST数据
     * @return
     **/
    private function httpRequest($url, $data = "")
    {
   
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)) {
     //判断是否为POST请求
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }

    /***
     * 获取openID和unionId
     * @code 微信授权登录返回的code
     * @return
     **/
    public function getOpenIdOrUnionId($code)
    {
   
        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?app
  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在.NET Framework中使用MVC开发微信公众号应用,可以采用以下步骤来实现: 1. 在微信公众平台上创建自定义菜单,并将菜单的链接指向你的MVC应用的某个Action方法。 2. 在MVC应用中添加一个Action方法,用于处理自定义菜单的请求。例如: ```csharp public ActionResult MenuClick(string eventKey) { switch (eventKey) { case "menu1": // 处理菜单1的请求 break; case "menu2": // 处理菜单2的请求 break; case "menu3": // 处理菜单3的请求 break; default: // 处理其他菜单的请求 break; } return Content(""); } ``` 注意,这里的`eventKey`参数就是自定义菜单中每个菜单项的`key`值。 3. 在MVC应用的`RouteConfig.cs`文件中添加一个路由规则,用于处理自定义菜单的请求。例如: ```csharp routes.MapRoute( name: "MenuClick", url: "MenuClick/{eventKey}", defaults: new { controller = "Home", action = "MenuClick", eventKey = UrlParameter.Optional } ); ``` 这个路由规则将`MenuClick/{eventKey}`映射到`Home`控制器的`MenuClick`方法,其中`eventKey`是可选的参数。 4. 在微信公众平台上配置自定义菜单的链接,将链接指向你的MVC应用的`MenuClick`方法。例如: ``` http://yourdomain.com/MenuClick/menu1 http://yourdomain.com/MenuClick/menu2 http://yourdomain.com/MenuClick/menu3 ``` 这样,当用户点击自定义菜单时,就会发送一个请求到你的MVC应用的`MenuClick`方法,你可以在这个方法中处理菜单的请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G佳伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值