首页 > 编程 > .NET > 正文

.net实现微信公众账号接口开发实例代码

2024-07-10 12:44:15
字体:
来源:转载
供稿:网友

说起微信公众帐号,大家都不会陌生,使用这个平台能给网站或系统增加一个新亮点,直接进入正题吧,在使用之前一定要仔细阅读官方API文档。
API文档地址:http://mp.weixin.qq.com/wiki/index.php

使用.net实现的方法:
//微信接口地址 页面代码:

代码如下:
weixin _wx = new weixin(); 
string postStr = ""; 
if (Request.HttpMethod.ToLower() == "post") 

Stream s = System.Web.HttpContext.Current.Request.InputStream; 
byte[] b = new byte[s.Length]; 
s.Read(b, 0, (int)s.Length); 
postStr = Encoding.UTF8.GetString(b); 
if (!string.IsNullOrEmpty(postStr)) //请求处理 

_wx.Handle(postStr);  


else

_wx.Auth(); 
}

具体处理类

代码如下:
/// <summary> 
/// 微信公众平台操作类 
/// </summary> 
public class weixin 

private string Token = "my_weixin_token"; //换成自己的token 
public void Auth() 

string echoStr = System.Web.HttpContext.Current.Request.QueryString["echoStr"]; 
if (CheckSignature()) //校验签名是否正确 

if (!string.IsNullOrEmpty(echoStr)) 

System.Web.HttpContext.Current.Response.Write(echoStr); //返回原值表示校验成功 
System.Web.HttpContext.Current.Response.End(); 




 
public void Handle(string postStr) 

//封装请求类 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(postStr); 
XmlElement rootElement = doc.DocumentElement; 
//MsgType 
XmlNode MsgType = rootElement.SelectSingleNode("MsgType"); 
//接收的值--->接收消息类(也称为消息推送) 
RequestXML requestXML = new RequestXML(); 
requestXML.ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText; 
requestXML.FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText; 
requestXML.CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText; 
requestXML.MsgType = MsgType.InnerText; 

//根据不同的类型进行不同的处理 
switch (requestXML.MsgType) 

case "text": //文本消息 
requestXML.Content = rootElement.SelectSingleNode("Content").InnerText; 
break; 
case "image": //图片 
requestXML.PicUrl = rootElement.SelectSingleNode("PicUrl").InnerText; 
break; 
case "location": //位置 
requestXML.Location_X = rootElement.SelectSingleNode("Location_X").InnerText; 
requestXML.Location_Y = rootElement.SelectSingleNode("Location_Y").InnerText; 
requestXML.Scale = rootElement.SelectSingleNode("Scale").InnerText; 
requestXML.Label = rootElement.SelectSingleNode("Label").InnerText; 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表