基本信息
源码名称:C#封装微信API的操作类源码下载
源码大小:0.03M
文件格式:.rar
开发语言:C#
更新时间:2013-11-08
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
现在用微信公共平台的比较多,特封装一个微信的API类,方便调用。支持最新版4.5的5种推送消息类型和3种回复消息类型。对基本的请求验证和通过验证,接受消息和回复消息都有静态方法实现,不用再手工去做了。
现在用微信公共平台的比较多,特封装一个微信的API类,方便调用。支持最新版4.5的5种推送消息类型和3种回复消息类型。对基本的请求验证和通过验证,接受消息和回复消息都有静态方法实现,不用再手工去做了。
using System;
using System.Collections.Generic;
using System.Xml;
namespace WeiXinAPI
{
public class NewsReplyMessage : Message
{
public List<Article> Articles;
public NewsReplyMessage()
{
MsgType = MessageType.News;
Direction = MessageDirection.Reply;
FuncFlag = "1";
}
public int ArticleCount
{
get { return Articles == null ? 0 : Articles.Count; }
}
public string FuncFlag { get; set; }
public override bool Parse(string xmlMessageString)
{
//空消息
if (string.IsNullOrEmpty(xmlMessageString))
{
return false;
}
//获取消息内容
try
{
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xmlMessageString);
XmlNode firstNode = xmlDocument.FirstChild;
if (firstNode != null)
{
//消息类型
XmlNode tempNode = firstNode.SelectSingleNode("MsgType");
if (tempNode == null) return false;
MsgType = tempNode.InnerText;
//发送者
tempNode = firstNode.SelectSingleNode("FromUserName");
if (tempNode == null) return false;
FromUserName = tempNode.InnerText;
//接收者
tempNode = firstNode.SelectSingleNode("ToUserName");
if (tempNode == null) return false;
ToUserName = tempNode.InnerText;
//创建时间
tempNode = firstNode.SelectSingleNode("CreateTime");
if (tempNode == null) return false;
CreateTime = Convert.ToInt64(tempNode.InnerText);
//Articles
tempNode = firstNode.SelectSingleNode("Articles");
if (tempNode != null)
{
if (tempNode.HasChildNodes)
{
Articles = new List<Article>();
foreach (XmlNode xmlNode in tempNode.ChildNodes)
{
XmlNode tmpNode = xmlNode.SelectSingleNode("Title");
if (tmpNode == null) return false;
string title = tempNode.InnerText;
tmpNode = xmlNode.SelectSingleNode("Discription");
if (tmpNode == null) return false;
string description = tempNode.InnerText;
tmpNode = xmlNode.SelectSingleNode("PicUrl");
if (tmpNode == null) return false;
string picUrl = tempNode.InnerText;
tmpNode = xmlNode.SelectSingleNode("Url");
if (tmpNode == null) return false;
string url = tempNode.InnerText;
Articles.Add(new Article(title, description, picUrl, url));
}
}
}
//星标(FuncFlag=1时星标消息)
tempNode = firstNode.SelectSingleNode("FuncFlag");
if (tempNode == null) return false;
FuncFlag = tempNode.InnerText;
return true;
}
return false;
}
catch
{
return false;
}
}
public override string ToString()
{
string result = string.Format("<xml>" Environment.NewLine
"<ToUserName><![CDATA[{0}]]></ToUserName>" Environment.NewLine
"<FromUserName><![CDATA[{1}]]></FromUserName>" Environment.NewLine
"<CreateTime>{2}</CreateTime>" Environment.NewLine
"<MsgType><![CDATA[{3}]]></MsgType>" Environment.NewLine
"<ArticleCount>{4}</ArticleCount>" Environment.NewLine, ToUserName,
FromUserName, CreateTime, MsgType, ArticleCount);
if (Articles.Count > 0)
{
result = "<Articles>" Environment.NewLine;
foreach (Article article in Articles)
{
result = "<item>" Environment.NewLine
"<Title><![CDATA[" article.Title "]]></Title>" Environment.NewLine
"<Discription><![CDATA[" article.Description "]]></Discription>"
Environment.NewLine
"<PicUrl><![CDATA[" article.PicUrl "]]></PicUrl>" Environment.NewLine
"<Url><![CDATA[" article.Url "]]></Url>" Environment.NewLine
"</item>" Environment.NewLine;
}
result = "</Articles>" Environment.NewLine;
}
result = "<FuncFlag>" FuncFlag "</FuncFlag>" Environment.NewLine "</xml>";
return result;
}
}
}