/// <summary>
/// 自定义MessageHandler,对接了 对接公众号消息的基本功能,需要其它功能可以自定义添加
/// Senparc升级后需要使用 DefaultMpMessageContext,把MessageHandler作为基类,重写对应请求的处理方法
/// </summary>
public partial class CustomMessageHandler : MessageHandler<DefaultMpMessageContext>
{
public CustomMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = 0)
: base(inputStream, postModel, maxRecordCount)
{
GlobalMessageContext.ExpireMinutes = 3;
}
/// <summary>
/// 处理文字请求
/// </summary>
/// <param name="requestMessage"></param>
/// <returns></returns>
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
{
//处理关键字
string msg = "有任何问题可以留言,我们会积极处理";
var responseMessage = base.CreateResponseMessage<ResponseMessageText>();
responseMessage.Content = msg;
return responseMessage;
}
/// <summary>
/// 关注时回复消息
/// </summary>
/// <returns></returns>
private static string GetWelcomeInfo()
{
return @"你好,欢迎关注牙有福洗牙!";
}
/// <summary>
/// 订阅(关注)事件
/// </summary>
/// <returns></returns>
public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage)
{
var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);
responseMessage.Content = GetWelcomeInfo();
#region 注册/更新信息
#endregion
return responseMessage;
}
/// <summary>
/// 退订
/// 实际上用户无法收到非订阅账号的消息,所以这里可以随便写。
/// unsubscribe事件的意义在于及时删除网站应用中已经记录的OpenID绑定,消除冗余数据。并且关注用户流失的情况。
/// </summary>
/// <returns></returns>
public override IResponseMessageBase OnEvent_UnsubscribeRequest(RequestMessageEvent_Unsubscribe requestMessage)
{
var responseMessage = base.CreateResponseMessage<ResponseMessageText>();
responseMessage.Content = "你好,欢迎您有空再来";
#region 取关业务逻辑
#endregion
return responseMessage;
}