我为自己的笑话网开发了一个微信公众平台的接口,在这里分享给大家,希望能对朋友们有帮助,如果有什么地方写的不好,好请大家指点!

首先是要进行认证,认证的时候,只需要在Page_Load事件里面单独去执行 认证的方法就可以了,具体代码见下面的RenZheng()

认证通过之后就可以对网友的消息进行处理,可以根据微信平台推送过来的数据进行分析!我相信大家在看到这篇文章的时候,在此之前肯定对平台都有所了解了,所以,废话不多说,直接上代码! 如果有什么疑问的欢迎加群:242384606 进行讨论!

    protected void Page_Load(object sender, EventArgs e){wxmessage wx = GetWxMessage();string res = "";//新用户添加if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "subscribe"){string content = "";content = "/:rose欢迎关注52冷笑话/:rose\n看笑话请直接回复“x”\n无聊时候还可以找我聊聊天哦!";res = sendTextMessage(wx, content);}else{bool sendJoke = false;//看笑话List<string> xhList = new List<string>() { "x", "笑话", "笑話" };foreach (string item in xhList){if (wx.Content.Trim().ToLower().Contains(item)){sendJoke = true;break;}}if (sendJoke){JokeDemo joke = GetJoke(wx.FromUserName);if (string.IsNullOrEmpty(joke.Img)){string title = string.Format("编号{0}:{1}\n-----------------\n", joke.ID, joke.Title);string content = joke.Content;if (content.Length > 300){content = GetSubString(content, 300) + "\n-----------------\n点击连接阅读全文:URL"}res = sendTextMessage(wx, title + content);}else{res = sendPictureMessage(wx, joke);}}//智能学聊天if (res == "" && Regex.IsMatch(wx.Content, "问(:|:)(.+?)答(:|:)(.+?)", RegexOptions.IgnoreCase)){string content = "";string key = Regex.Match(wx.Content, "问(:|:)(.+?)答(:|:)(.+?)", RegexOptions.IgnoreCase).Groups[2].Value.Trim();int startIndex = wx.Content.IndexOf("答:") + 2;if (startIndex < 3){startIndex = wx.Content.IndexOf("答:") + 2;}string rep = wx.Content.Substring(startIndex, wx.Content.Length - startIndex).Trim();// Regex.Match(wx.Content, "问(:|:)(.+?)答(:|:)(.+?)", RegexOptions.IgnoreCase).Groups[4].Value;if ((new ChatBLL()).isExists(key)){content = "/::)O啦!学会啦\n不信你问问!";}else{if ((new ChatBLL()).Add(key, rep) > 0){content = "好啦,这个问题我学会啦!\n你现在提问我吧!/::P";}else{content = "糟糕了,系统出了点儿小意外!\n麻烦你再试一次!";}}res = sendTextMessage(wx, content);}//未知情况if (res == ""){string content = (new ChatBLL()).GetReplyByKey(wx.Content.Trim());if (content == ""){content = "/:,@-D啊哦,你在说什么?\n你可以按照下面的格式告诉我:\n问:你说的话 答:你想让我说什么\n看笑话请直接回复“x”!";}res = sendTextMessage(wx, content);}}Response.Write(res);}/// <summary>/// 发送文字消息/// </summary>/// <param name="wx">获取的收发者信息</param>/// <param name="content">笑话内容</param>/// <returns></returns>private string sendTextMessage(wxmessage wx, string content){string res = string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime><MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[{3}]]></Content> <FuncFlag>0</FuncFlag></xml> ",wx.FromUserName, wx.ToUserName, DateTime.Now, 内容);return res;}/// <summary>/// 发送图文消息/// </summary>/// <param name="wx">获取的收发者信息</param>/// <param name="joke">笑话信息</param>/// <returns></returns>private string sendPictureMessage(wxmessage wx, JokeDemo joke){StringBuilder sb = new StringBuilder();sb.AppendFormat("<xml><ToUserName><![CDATA[{0}]]></ToUserName>", wx.FromUserName);sb.AppendFormat("<FromUserName><![CDATA[{0}]]></FromUserName>", wx.ToUserName);sb.AppendFormat("<CreateTime>{0}</CreateTime>", DateTime.Now);sb.AppendFormat("<MsgType><![CDATA[news]]></MsgType><Content><![CDATA[]]></Content>");sb.AppendFormat("<ArticleCount>1</ArticleCount>");sb.AppendFormat("<Articles><item>");sb.AppendFormat("<Title><![CDATA[{0}]]></Title>", 标题);sb.AppendFormat("<Description><![CDATA[{0}]]></Description>", 说明文字);sb.AppendFormat("<PicUrl><![CDATA[{0}]]></PicUrl>", 图片地址);sb.AppendFormat("<Url><![CDATA[{0}]]></Url>", 连接地址);sb.AppendFormat("</item></Articles><FuncFlag>0</FuncFlag></xml>");return sb.ToString();}/// <summary>/// 获取请求过来的微信信息/// </summary>/// <returns></returns>private wxmessage GetWxMessage(){wxmessage wx = new wxmessage();StreamReader str = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8);XmlDocument xml = new XmlDocument();xml.Load(str);wx.ToUserName = xml.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText;wx.FromUserName = xml.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText;wx.MsgType = xml.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText;if (wx.MsgType.Trim() == "text"){wx.Content = xml.SelectSingleNode("xml").SelectSingleNode("Content").InnerText;}if (wx.MsgType.Trim() == "event"){wx.EventName = xml.SelectSingleNode("xml").SelectSingleNode("Event").InnerText;}return wx;}/// <summary>/// 微信认证/// </summary>private void RenZheng(){#region 微信认证//string res = "";//string token = "52lxh";//string signature = Request["signature"];//string timestamp = Request["timestamp"];//string nonce = Request["nonce"];//string echostr = Request["echostr"];//if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(signature) || string.IsNullOrEmpty(timestamp) || string.IsNullOrEmpty(nonce) || string.IsNullOrEmpty(echostr))//{//    using (StreamWriter sw = new StreamWriter(Server.MapPath("wx.txt")))//    {//        sw.Write("参数错误" + Request.Url);//    }//}//else//{//    ArrayList arr = new ArrayList() { token, timestamp, nonce };//    arr.Sort();//    string signature1 = GetSHA1(arr[0].ToString() + arr[1].ToString() + arr[2].ToString());//    if (signature == signature1.ToLower())//    {//        res = echostr;//    }//    else//    {//        res = "error";//    }//    Response.Write(res);//}#endregion}/// <summary>/// 加密字符串/// </summary>/// <param name="password"></param>/// <returns></returns>private string GetSHA1(string password){string shh1string = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1");return shh1string;}/// <summary>/// 截取字符串/// </summary>/// <param name="content"></param>/// <param name="length"></param>/// <returns></returns>private string GetSubString(string content, int length){if (content.Length >= length){return content.Substring(0, length);}else{return content;}}//自定义一个微信消息实体类class wxmessage{public string FromUserName { get; set; }public string ToUserName { get; set; }public string MsgType { get; set; }public string EventName { get; set; }public string Content { get; set; }}

52冷笑话官网:http://www.52lxh.com 随时欢迎您!

欢迎关注52冷笑话微信看笑话!

微信公众平台接口,asp.net实现相关推荐

  1. 共享一个调用微信公众平台接口的客户端类库

    由于我所开发活动项目经常要用到微信公众平台所提供的接口,所以本人专门开发了微信客户端的类库. 经过了几个项目的实践,特意将该类库共享出来.源代码已经放在了github上,供大家使用. 首先介绍一下设计 ...

  2. 微信公众号api关注接口php,微信公众平台接口开发入门示例

    本文实例讲述了微信公众平台接口开发入门示例.分享给大家供大家参考.具体如下: 微信公众平台的接口开发是一个现在比较常用的功能了,很多的人都会去了解一下微信公众平台一些简单开发应用,这里就来给大家介绍一 ...

  3. 微信公众平台接口调试工具——蓝牙设备调试篇

    微信公众平台接口调试工具--蓝牙设备调试篇 第一步:获取token 需要两个参数:appid和appsecret 下面将如何获取上面两参数 首先进入公众号,点击开发者工具,点击公众平台测试账号,如下图 ...

  4. python 微信公众号网页接口调用_Python调用微信公众平台接口操作示例

    本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...

  5. python连接微信接口开发教程_Python调用微信公众平台接口操作示例

    本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...

  6. python微信api_Python调用微信公众平台接口操作示例

    本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...

  7. 微信公众平台接口开发基础

    微信接口开发的要点:公众号(订阅号.服务号).微信公众号提供的对应接口限制等.微信平台开发几乎涵盖了各行各业,小程序也让微信着实火了一把,时代在不断地发展,开发也在不断地切换自己的思维和平台.俗话说, ...

  8. python链接微信接口开发教程_Python调用微信公众平台接口操作示例

    本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...

  9. 一周的微信公众平台接口开发总结

    2019独角兽企业重金招聘Python工程师标准>>> 在公司弄了一个星期的微信公众平台的接口开发,由于之前没弄过,开发的过程遇到了很多的小问题.下面我就总结一下我在开发过程中遇到了 ...

最新文章

  1. GLOBAL TEMPORARY TABLE
  2. 眨眼检测 疲劳检测,分享代码
  3. silverlight 学习笔记 (七):Prism的第一个应用
  4. Storyboard和Xib混用黑魔法-swift版
  5. BZOJ1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
  6. windows php7怎么配置,PHP7在windows7中的环境配置详解
  7. 现在还有人玩暗黑2吗?
  8. Java软件开发基础入门之工作流
  9. 在Windows上安装TeXLive
  10. 怎么用python编写个apk_python自动安装apk文件
  11. excel拆分单元格内容_Excel办公软件教程
  12. META-INF、WEB-INF分别是什么?
  13. python画海贼王_用python自动爬取海贼王漫画推送kindle
  14. 微信小程序vant 输入框问题
  15. New情报:APT28,TA505 黑产组织,VenusLocker Ransomware组织,ROKRAT远控
  16. 全球100位人工智能名人和2500名资深AI人士,将聚首深圳
  17. 实在智能签约上海联通,共创美好智慧生活
  18. LR字符串截取lr_save_var
  19. 阿里云ECS服务器安装宝塔BT面板图文教程
  20. web项目欢迎页设置

热门文章

  1. 三、路由协议——直连路由、静态路由、缺省路由、路由优先级和路由度量、路由冗余和备份(浮动静态路由)
  2. LSTM时间序列预测MATLAB代码模板(无需调试)
  3. Windows开发:鼠标操作
  4. Firefox浏览器基本使用
  5. 【Android】安卓webview播放视频白屏解决方法
  6. 主机和虚拟机之间不能互通解决办法
  7. 中兴网络设备交换机路由器查看BGP状态检查命令方法
  8. 决策树、装袋、提升和随机森林的对比理解
  9. 第五讲 Matlab/Simulink入门——混合系统仿真实例
  10. R语言开发之输出散点图