我非常愿意为您讲解“asp.net开发微信公众平台之获取用户消息并处理”的完整攻略。
前置条件
在进行下面的步骤之前,您需要准备好以下前置条件:
- 一个搭建好的asp.net项目。
- 一个微信公众号。
- 在微信公众平台上获取到公众号的AppID和AppSecret。
- 安装WeChat SDK。
步骤1:获取微信服务器发送的消息
通过ASP.NET处理微信公众平台的消息,需要在代码中添加HTTP处理程序。以下代码演示了如何编写HTTP处理程序以获取微信服务器发送的消息。
<%@ WebHandler Language="C#" Class="WeChatHandler" %>
using System;
using System.Web;
using Senparc.Weixin.MP.Entities.Request;
public class WeChatHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.HttpMethod.ToUpper() == "POST")
{
//获取微信服务器发送的消息
var message = Senparc.Weixin.MP.Context.WeiXinContext.GetWeiXinContext().RequestMessage
as RequestMessageText;
if (message != null)
{
//处理接收到的文本消息
var responseMessage = ResponseMessageBase.CreateFromRequestMessage(message);
responseMessage.Content = "您好,欢迎关注我的公众号!";
context.Response.Write(responseMessage.ToXml());
}
}
}
public bool IsReusable
{
get { return false; }
}
}
步骤2:验证服务器地址有效性
在微信公众平台验证服务器地址有效性时,需要向微信服务器发送GET请求。以下代码演示了如何验证服务器地址有效性。
using System;
using System.Web;
public class WeChatAuthHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.HttpMethod.ToUpper() == "GET")
{
if (CheckSignature(context))
{
context.Response.Write(context.Request.QueryString["echostr"]);
}
else
{
context.Response.Write("error");
}
}
}
bool CheckSignature(HttpContext context)
{
var signature = context.Request.QueryString["signature"];
var timestamp = context.Request.QueryString["timestamp"];
var nonce = context.Request.QueryString["nonce"];
var token = "your_token";
var tmpArr = new[] { token, timestamp, nonce }.OrderBy(z => z).ToArray();
var tmpStr = string.Join("", tmpArr);
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
return tmpStr.ToLower() == signature;
}
public bool IsReusable
{
get { return false; }
}
}
示例1:回复文本消息
以下代码演示了如何回复文本消息
//获取微信服务器发送的消息
var message = Senparc.Weixin.MP.Context.WeiXinContext.GetWeiXinContext().RequestMessage
as RequestMessageText;
if (message != null)
{
//处理接收到的文本消息
var responseMessage = ResponseMessageBase.CreateFromRequestMessage(message);
responseMessage.Content = "您好,欢迎关注我的公众号!";
context.Response.Write(responseMessage.ToXml());
}
示例2:回复图片消息
以下代码演示了如何回复图片消息
//获取微信服务器发送的消息
var message = Senparc.Weixin.MP.Context.WeiXinContext.GetWeiXinContext().RequestMessage
as RequestMessageText;
if (message != null)
{
//处理接收到的文本消息
var responseMessage = ResponseMessageBase.CreateFromRequestMessage(message);
responseMessage.MsgType = ResponseMsgType.Image;
responseMessage.Image = new Image()
{
MediaId = "xxx",
};
context.Response.Write(responseMessage.ToXml());
}
通过以上步骤,您可以轻松地完成在ASP.NET中开发微信公众平台,并获取和处理用户发送的消息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net开发微信公众平台之获取用户消息并处理 - Python技术站