常常看到微信公众号下面有菜单,点击菜单可以跳转的不同的页面。如图.
菜单有两种配置方式,这两种方式都可以
1.手动配置
2.通过程序开发自动配置。
今天我们看看通过程序开发自动配置怎么实现,也就是第二种方式怎么操作
1.关闭手动配置
首先登陆微信公众平台,进行自定义菜单页面,关闭手动菜单配置,实现通过开发接口配置,如图
2.基本设置
首先进入开发中心,进行基本配置
2.1 开发信息配置
配置appid, 配置AppSecret, 配置IP白名单
注意: IP白名单中要添加公众号菜单网址所在的服务器IP
2.2 服务器配置
这个配置是最麻烦的,最令人头疼的,我找了一下午才解决,主要是配置服务器的时候一直提示token验证失败,
但是一直没找到原因,最后还是解决了,现把解决办法说下,供大家借鉴
首先配置的时候要输入域名,token,
然后在后头开发中配置的token和页面中的token一致,
后头要写代码实现,进行token验证
public class BaseWebChatController : Controller
{
/// <summary>
/// 微信后台验证地址(使用Get),微信后台的“接口配置信息”的Url
/// </summary>
[HttpGet]
[ActionName("Index")]
public ActionResult Get(string signature, string timestamp, string nonce, string echostr)
{
var token = WXSettingHelper.Instance.Token;//微信公众平台后台设置的Token
if (string.IsNullOrEmpty(token)) return Content("请先设置Token!");
var ent = "";
if (!BasicAPI.CheckSignature(signature, timestamp, nonce, token, out ent))
{
LogHelper.WriteLog("参数错误");
return Content("参数错误!");
}
LogHelper.WriteLog("验证通过" + echostr);
return Content(echostr); //返回随机字符串则表示验证通过
}
}
如果验证通过,页面就会提示成功。如果通不过,token一直提示失败.
关键时刻到了,如果提示失败,可以使用如下方法,欺骗前台页面,绕过认证
[HttpGet]
[ActionName("Index")]
public ActionResult Get(string signature, string timestamp, string nonce, string echostr)
{
var token = WXSettingHelper.Instance.Token;//微信公众平台后台设置的Token
if (string.IsNullOrEmpty(token)) return Content("请先设置Token!");
var ent = "";
return Content(echostr); //返回随机字符串则表示验证通过
}
这样前台页面就可以提交成功了。
服务器配置好后,点击启用就可以了
3.创建菜单
有了以上信息后,就可以写程序创建菜单了,创建菜单的具体代码可以百度下,这个难度不大。
菜单创建完成后,一分钟之内就可以在公众号中看到菜单了