C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)
C#/ASP.NET MVC微信接口开发文章目录:
1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台
2.C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)
3.C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)
自定义菜单开发
1.配置Json字符串
首先配置菜单/menu所需要的Json字符串,然后用post请求微信接口地址即可。配置json格式参看微信接口文档:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html
2.Post请求发布
配置好Json字符串之后请求微信api地址代码:
/// <summary>
/// 发布菜单
/// </summary>
/// <param name="MenuJson">配置的菜单json数据</param>
/// <param name="AppID">AppID</param>
/// <param name="AppSecret">AppSecret</param>
/// <returns>返回0成功否则错误码</returns>
public string MenuCreate(string MenuJson,string AppID,string AppSecret) {
string setMenuUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}";
setMenuUrl = string.Format(setMenuUrl, BasicApi.GetTokenSession(AppID,AppSecret));//获取token、拼凑url
string respText = sohovan.com.common.CommonMethod.WebRequestPostOrGet(setMenuUrl, MenuJson);
Dictionary<string, object> respDic = (Dictionary<string, object>)Jss.DeserializeObject(respText);
return respDic["errcode"].ToString();//返回0发布成功
}
若发布成功则返回0,发布失败返回错误码。
3.响应菜单事件
菜单发布成功,根据配置的Json字符串,菜单分为两种基本的常用类型click(单击)、view(跳转url),view直接跳转到配置的url,click事件的微信服务器发送事件XML给对于的微信用户格式为:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[CLICK]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>
EventKey为我们发布自己定义的key值,根据key值我们可以设置对于的回复消息。
本文版权归作者(谢俊)和博客园所有,欢迎转载,转载请标明出处。
原文地址:http://www.cnblogs.com/net-xiejun/
微信开发群
完整源码下载:https://github.com/xiejun-net/weixin
公众账号:

C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)的更多相关文章
- 微信公众号商城、小程序商城、H5商城 实例 前后端源码
CRMEB客户管理+电商营销系统 https://gitee.com/ZhongBangKeJi/CRMEB 演示站后台: http://demo.crmeb.net/admin 账号:demo 密 ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)
C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)
文章导读: C#微信公众号接口开发之从零开发(一) 接入微信公众平台 微信接入之后,微信通过我们接入的地址进行通信,其中的原理是微信用户发送消息给微信公众账号,微信服务器将消息以xml的形式发送到我们 ...
- C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取
一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号 ...
- 微信公众号接口类(PHP版本)
[项目需求] 通过微信提供的接口,实现微信公众号与后端的应用程序数据交互.消息响应等功能. [项目疑难点] 理解接口工作方式,统一接口API,响应速度.安全性等 [代码举例] WeixinAp ...
- http80端口转发(实现微信公众号接口绑定IP时,同时支持多个公众号)
http80端口转发 背景 微信公众平台接口绑定服务器时,如果使用IP需要使用80端口,此组件可实现一个IP上绑定多个公众平台接口 使用方法 http://(IP)/WeixinMP/(转发的地址Ba ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台
微信公众平台接入:其实很简单,把两个参数(地址和token)填入微信公众平台后台,暂时选择明文模式 ,其中token自己定义.微信服务器会根据后台填写的地址访问,并且带上对于的参数 如 url+&am ...
- C#微信公众号接口开发实例-高级接口-申请带参数的二维码
最近公司涉及到微信绑定用户,做了高级接口-申请带参数的二维码,总结了下微信开发接口.微信接口开发都是除了消息用的xml 回复基本上都是用json的形式传递信息(post/get),开发的方法基本都是一 ...
- 微信公众号支付(三):页面调用微信支付JS并完成支付
一.调用微信的JS文件 1.首先要绑定[JS接口安全域名],“公众号设置”的“功能设置”中 2.引入JS文件 备注:支持使用 AMD/CMD 标准模块加载方法加载 <script type=&q ...
随机推荐
- HTML 5 音频
HTML 5 音频 ================================================================================= 音频是视频的重要 ...
- 在ubuntu 14.04上安装2.6的内核
1.到http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2这里下载最新的稳定版内核: 2.根据各自系统,安装如下软件:l b ...
- 【前端】event.target 和 event.currentTarget 的区别
event.target 和 event.currentTarget 的区别 举例说明: <!DOCTYPE html> <html> <head> <tit ...
- java源代码跟踪
首先我们要学会的是将JDK源码加载Eclipse中. 1.点“窗口”——>"首选项",选择左边的"Java"——>"已安装的JRE&quo ...
- Go语言执行系统命令行命令(转)
package main import ( "os" "os/exec" "fmt" "flag" "stri ...
- 渗透杂记-2013-07-13 Windows XP SP2-SP3 / Windows Vista SP0 / IE 7
Welcome to the Metasploit Web Console! | | _) | __ `__ \ _ \ __| _` | __| __ \ | _ \ | __| | | | __/ ...
- JSON数据解析
1 JSON简介 JSON(JavaScript Object Notation),类似于XML,是一种轻量级的数据交换格式,比如在JavaEE中Struts2与Ajax在来回传递数据时,除了可以利用 ...
- 监狱3D指纹门禁系统解决方案
由于监狱的行业特殊性,其安全性对社会的安定团结具有重大影响力.因此,采用高新技术来建立监狱的安全屏障,提高监狱安全的规范化.科学化管理水平.用高效的技术防范手段对监狱安全实行事前的主动的防范,保障社会 ...
- jQuery.hasClass() 函数
hasClass() 函数 判断当前选择元素是否有指定的类名 语法 $(selector).hasclass(classname) 返回值 返回值为布尔型(true/false) 如果当前选择对象包含 ...
- WinForm中MouseEnter和MouseLeave混乱的问题
MouseEnter+MouseLeave不行,我用了MouseMove+MouseLeave,效果一样 最近做个聊天的系统,仿照qq的界面设计,像qq聊天界面中字体.表情.截图等图片,鼠标放上去显示 ...