一切准备工作就绪时就先实现一个关注公众号后向客户端推送一条消息。关注后推送消息需要一个get请求、一个post请求,get请求主要是为了向微信服务器验证,post请求主要就是处理微信消息了。 调接口时传递的appid和appsecret请传递自己公众号对应的参数。
微信事件交互
微信事件交互主要是向微信服务器推送XML数据包
看效果
看代码
[HttpGet] [ActionName("Index")] publicActionResult Get(stringsignature,stringtimestamp,stringnonce,stringechostr) { if(CheckSignature.Check(signature, timestamp, nonce, token)) { returnContent(echostr); } else { returnContent("err"); } [HttpPost] [ActionName("Index")] publicActionResult Get(stringsignature,stringtimestamp,stringnonce) { StreamReader sr =newStreamReader(Request.InputStream, Encoding.UTF8); XmlDocument doc =newXmlDocument(); doc.Load(sr); sr.Close(); sr.Dispose(); WxMessage wxMessage =newWxMessage(); wxMessage.ToUserName = doc.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText; wxMessage.FromUserName = doc.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText; wxMessage.MsgType = doc.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText; wxMessage.CreateTime =int.Parse(doc.SelectSingleNode("xml").SelectSingleNode("CreateTime").InnerText); if(wxMessage.MsgType =="event") { wxMessage.EventName = doc.SelectSingleNode("xml").SelectSingleNode("Event").InnerText; if(!string.IsNullOrEmpty(wxMessage.EventName) && wxMessage.EventName =="subscribe") { stringcontent ="您好,欢迎访问garfieldzf8测试公众平台"; content = SendTextMessage(wxMessage, content); returnContent(content); } } returnContent(""); } privatestringSendTextMessage(WxMessage wxmessage,stringcontent) { stringresult =string.Format(Message, wxmessage.FromUserName,wxmessage.ToUserName,DateTime.Now.Ticks, content); returnresult; } publicstringMessage { get { return@""; } } publicclassWxMessage { publicstringToUserName {get;set; } publicstringFromUserName {get;set; } publiclongCreateTime {get;set; } publicstringContent {get;set; } publicstringMsgType {get;set; } publicstringEventName {get;set; } publicstringEventKey {get;set; } } {2}
总结
开发微信接口的过程中不能调试,唯一排除问题的方式就是在关键的地方记log。
微信事件交互主要是分析微信发送的xml数据包,解析xml,并按照消息指定格式拼接xml发送给response。在Get方法里用到的CheckSignature 是盛派微信SDK的一个类,也就是对签名校验。
向客户端发送消息时主要ToUserName和FromUserName。我一开始把两个参数写反了导致客户端收不到消息。
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级