ASP.NET微信开发(已关注用户管理)
简介
随着微信的用户量不断攀升,越来越多的企业希望能够通过微信进行一系列的营销活动,因此微信开发变得越来越流行。而ASP.NET作为一种成熟的web框架,非常适合进行微信开发,下面我们就来讲解一下在ASP.NET下如何进行已关注用户管理的微信开发。
步骤
1.注册微信公众号并获取公众号相关信息
首先,在微信公众平台官网完成微信公众号注册。在注册完成后,需要进入公众号管理后台,在“设置”-“公众号设置”-“开发者中心”中获取必要的信息,包括:AppID、AppSecret、Token等。
2.在ASP.NET项目中集成微信SDK
微信提供了配套的SDK供开发者使用,我们可以在微信公众平台SDK下载页面下载最新的SDK。然后把SDK集成到ASP.NET项目中,以便进行开发。
3.接收微信服务器验证
在接收到微信服务器的验证请求后,需要进行验签操作。验签操作的目的是为了验证接收到的请求是否来自微信服务器,防止被恶意攻击。具体的流程如下:
1)把接收到的timestamp、nonce、token三个参数组成一个数组。
2)对数组进行排序。
3)将数组中的元素拼接成一个字符串,形成signature的源字符串。
4)对源字符串进行sha1加密。
5)把加密后的字符串与微信服务器传来的signature值进行比对。
可以通过以下代码实现:
public bool CheckSignature() {
string token = "your_token";
string timestamp = Request.QueryString["timestamp"];
string nonce = Request.QueryString["nonce"];
string signature = Request.QueryString["signature"];
string[] ArrTmp = { token, timestamp, nonce };
Array.Sort(ArrTmp); //字典排序
string tmpStr = string.Join("", ArrTmp);
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
tmpStr = tmpStr.ToLower();
if (tmpStr == signature) {
return true;
}
else {
return false;
}
}
4.处理已关注用户信息
在已经接收到微信服务器发送过来的用户消息后,需要根据用户发送的消息类型进行处理。由于本文的重点是已关注用户管理,因此我们这里主要讨论如何处理关注事件。当一个用户关注公众号后,微信服务器会发送一个XML格式的消息到我们在公众号管理后台填写的URL上,我们需要解析这个XML,获取用户相关信息,并把信息保存到我们的数据库中。可以通过以下代码实现:
public ActionResult ProcessRequest(HttpContext context) {
// 接收微信服务器 POST 过来的 XML
XmlDocument xml = new XmlDocument();
using (Stream stream = HttpContext.Request.InputStream) {
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
string postStr = System.Text.Encoding.UTF8.GetString(bytes);
xml.LoadXml(postStr);
}
// 解析 XML 获取用户信息
string sender = xml.SelectSingleNode("/xml/FromUserName").InnerText;
string receiver = xml.SelectSingleNode("/xml/ToUserName").InnerText;
string eventKey = xml.SelectSingleNode("/xml/EventKey").InnerText;
string eventType = xml.SelectSingleNode("/xml/Event").InnerText;
// 把用户信息存入数据库中
DBContext.AddUserInfo(sender, receiver, eventKey);
return Content("");
}
5.编写页面获取已关注用户列表
最后,我们需要在ASP.NET页面中编写获取已关注用户列表的代码。可以通过以下代码实现:
public List<UserInfo> GetUsers() {
List<UserInfo> list = new List<UserInfo>();
string token = AccessTokenContainer.TryGetToken(appId, appSecret);
var result = UserApi.Get(new OpenIdResult(token));
if (result.errcode == ReturnCode.请求成功) {
foreach (var item in result.data.openid) {
var user = UserApi.Info(token, item);
if (user.errcode == ReturnCode.请求成功) {
list.Add(new UserInfo() {
NickName = user.nickname,
OpenId = user.openid,
Sex = user.sex,
Province = user.province,
City = user.city,
Headimgurl = user.headimgurl
});
}
}
}
return list;
}
示例
示例1:发送欢迎消息
public string SendWelcomeMessage() {
string token = AccessTokenContainer.TryGetToken(appId, appSecret);
TextMessage msg = new TextMessage() {
ToUserName = "oKUv3jZO9hLLRMS_BFfEZ3u11pDU",
Content = "欢迎关注我们的公众号,有任何问题请在公众号内留言。",
MsgType = "text"
};
CustomApi.SendText(token, msg);
}
示例2:发送模板消息
public void SendTemplateMessage() {
string token = AccessTokenContainer.TryGetToken(appId, appSecret);
TemplateMessage message = new TemplateMessage() {
ToUser = "oKUv3jZO9hLLRMS_BFfEZ3u11pDU",
TemplateId = "template_id",
Data = new {
first = new TemplateDataItem("您的订单已支付成功,我们会尽快安排发货。"),
orderNO = new TemplateDataItem("201919191"),
orderMoneySum = new TemplateDataItem("¥999.99"),
backupFieldName = new TemplateDataItem("备用字段"),
remark = new TemplateDataItem("欢迎再次购买我们的产品!")
}
};
var result = TemplateApi.SendTemplateMessage(token, message);
}
以上就是ASP.NET微信开发中的已关注用户管理攻略,包括了关键步骤及示例代码。在具体实现时,还需根据具体问题进行修改和完善。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net微信开发(已关注用户管理) - Python技术站