• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > asp.net微信开发(自定义会话管理)

asp.net微信开发(自定义会话管理)

作者:将哥 字体:[增加 减小] 来源:互联网 时间:2017-05-11

将哥通过本文主要向大家介绍了微信开发 asp.net,微信 asp.net,微信支付 asp.net,用asp.net开发网站,asp net项目开发案例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

和微信用户的沟通少不了,总觉得看起来微信官网后台管理中的会话回复消息有点呆板,所以我这里就自定义了一个会话管理功能,最终效果图如下:

因为我试使用富文本文件CKEDITOR来进行编写,你看到稳中可能会有<P></p>字段,后台获取数据内容时,替换为空字符即可:如下

 string txtcontent = this.txtMessage.Value.ToString().Replace("<p>", "");
   StringBuilder sb = new StringBuilder();
   sb.Append(txtcontent.Replace("</p>\r\n", ""));
</div>

在我个人理解,做会话管理,无非就是将用户对话信息(用户发过来的数据,发给用户的数据)存入数据库,根据用户的数据时间和回复用户数据的时间来和当天系统的时间做对比,如果大于多少分钟或者多少个小时就不可以再主动和用户对话,就算我这里是根据微信官网48小时来进行限制的,超过48小时禁用控件,如下图:


废话少说,上代码:需要用到的两个类,数据库也要创建和类相同的名字(至少我试这么做的)
 

/// <summary>
 /// 微信会话记录类,用户存储会话记录列表
 /// </summary>
 public class WeixinKeFuInfo
 {
 public int UId { get; set; }//编号
 public string UserOpenId { get; set; }//用户的OpenID
 public string UserContent { get; set; }//用户内容
 public string CreaterDate { get; set; }//创建时间
 }

 

 /// <summary>
 /// 与微信用户会话的消息记录类
 /// </summary>
 public class WxMessageInfo
 {
 public int msgId { get; set; }//消息ID
 public string FromUser { get; set; }//发送用户
 public string ToUser { get; set; }//接收用户
 public string Content { get; set; }//发送内容
 public string FaSongDate { get; set; }//发送时间
 public string UId { get; set; }//会话用户的UId,微信会话记录类外键
 }

 /// <summary>
 /// 发送文本。。。。。。。。。。。。。还记得这个方法吗?就是根据用户发送过来的消息类型进行判断后,如果是文本就回复发送此方法内的内容
 /// </summary>
 /// <param name="requestXML"></param>
 private void SendTextCase(RequestXML requestXML)
 {

      WeixinKeFuService wkfs = new WeixinKeFuService();//自己写的服务类
  //根据openId查询数据库会话记录是否存在
  WeixinKeFuInfo wkfinfoinfo = wkfs.GetWeixinKeFuInfoByOpenId(requestXML.FromUserName.ToString());
  if (wkfinfoinfo != null)
  {
   //如果存在直接保存消息记录
   WxMessageService wms = new WxMessageService();
   WxMessageInfo wminfo = new WxMessageInfo();
   wminfo.FromUser = requestXML.FromUserName.ToString();
   wminfo.ToUser = "我";
   wminfo.Content = requestXML.Content.ToString();
   wminfo.FaSongDate = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
   wminfo.UId = wkfinfoinfo.UId.ToString();
   wms.AddWxMessageInfo(wminfo);
  }
  else
  {
   //如果不存在新建会话记录
   WeixinKeFuInfo wkfinfo = new WeixinKeFuInfo();
   wkfinfo.UserOpenId = requestXML.FromUserName.ToString();
   wkfinfo.UserContent = requestXML.Content.ToString();
   wkfinfo.CreaterDate = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
   wkfs.AddWeixinKeFuInfo(wkfinfo);

   string responseContent = FormatTextXML(requestXML.FromUserName, requestXML.ToUserName, "正在接入.请稍候.....");

   HttpContext.Current.Response.ContentType = "text/xml";
   HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
   HttpContext.Current.Response.Write(responseContent);
   HttpContext.Current.Response.End();
  }

  }

</div>

以上代码实现了数据库的插入,那么取出来,显示的页面,核心代码:WeiXinSessionList.aspx,前台代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeiXinSessionList.aspx.cs" Inherits="DQWebSite.Administrator.WeiXinSessionList" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
 <title></title>
 <meta http-equiv="refresh" content="60; url=WeiXinSessionList.aspx" />
 <link href="css/style.css" rel="Stylesheet" type="text/css" />
 <style type="text/css">
 .tablestyle { width:1124px; margin:10px auto 10px auto; border:1px solid #ecd9df; text-align:center;
 }
 th { height:35px;background-image:url('images/th.gif'); background-repeat:repeat-x;
 }
  tr { height:30px;
  }
  td {
  border-left:1px dotted #a7b5bc;
  }
 .trcolor { background-color:#ecd9df;
 }
 tr:hover { cursor:pointer;
 }
  #FenPage { width:1124px; height:25px; line-height:25px; text-align:center; margin:20px auto 20px auto;
 }
 .linka { color:#0094ff; cursor:pointer;
 }
 .fenyebtn {width:60px; height:25px; border:1px solid #ced9df; border-radius:5px; text-align:center; line-height:25px; float:right;
 }
 .fenyebtn2 { width:60px; height:25px; border:1px solid #ced9df; border-radius:5px; text-align:center; line-height:25px;margin-left:10px;float:right;
 }
 .toPageIndex { width:60px;height:25px; background-image:url('images/inputbg.gif'); margin-left:10px; background-repeat:repeat-x;border-top:solid 1px #a7b5bc; border-left:solid 1px #a7b5bc; border-right:solid 1px #ced9df; border-bottom:solid 1px #ced9df; text-align:center; float:right;
 }
 .gotoPagebtn { width:60px; height:25px; border:1px solid #ced9df; border-radius:5px; text-align:center; line-height:25px;margin-left:10px;float:right; background-color:#ced9df;
 }
 .deletebtn {float:left;width:100px; color:#000; height:25px; background-color:#ced9df; border:1px solid #ced9df; border-radius:5px; text-align:center;
 }
 #BtnDeleteSelected:hover { cursor:pointer;
 }
 .publishHuoDong {background-color:#ced9df; border:1px solid #ced9df; border-radius:5px;text-align:center; width:100px; color:#000; height:25px; line-height:25px; float:left;
 }
 a { color:#08a5e0;
 }
 .droplist { background-image:url('images/inputbg.gif'); background-repeat:repeat-x; width:120px; height:25px; border:1px solid #ced9df;
 }
 </style>
 <script type="text/javascript">
 
  function EditRoster(piciNumber) {
  var url = 'MessageWindow.aspx?id=' + piciNumber;    //转向网页的地址;
  var name = 'add';    //网页名称,可为空;
  var iWidth = 850;    //弹出窗口的宽度;
  var iHeight = 600;    //弹出窗口的高度;
  //获得窗口的垂直位置
  var iTop = (window.screen.availHeight - 30 - iHeight) / 2;
  //获得窗口的水平位置
  var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;
  window.open(url, name, 'height=' + iHeight + ',,innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no');
 
  }
 </script>
</head>
<body style="background-image:url('images/ygbg.png'); background-repeat:repeat;">
 <form id="form1" runat="server">
 <div class="place">
  <span>位置:</span>
  <ul class="placeul">
   <li><a href="WelCome.aspx" target="rightFrame">首页</a></li>
   <li>微信管理</li>
   <li>德桥员工服务中心--会话管理</li>
  </ul>
  



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET微信公众号查看粉丝信息接口
  • ASP.NET微信公众号添加菜单
  • ASP.NET微信公众号之用户分组管理web页面
  • 最详细的ASP.NET微信JS-SDK支付代码
  • ASP.NET微信公众号客服接口
  • 微信开发(一) asp.net接入
  • asp.net实现微信公众账号接口开发教程
  • ASP.NET微信开发(接口指南)
  • asp.net微信开发(永久素材管理)
  • asp.net微信开发(高级群发图文)

相关文章

  • 2017-05-11未处理的事件"PageIndexChanging" 之解决方案
  • 2017-05-11.NET读取Excel文件的三种方法的区别
  • 2017-05-11js实现网页防止被iframe框架嵌套及几种location.href的区别
  • 2017-05-11C# javaScript函数的相互调用
  • 2017-05-11asp.net core mvc实现伪静态功能
  • 2018-08-20.NET读写Excel工具Spire.Xls使用 重量级的Excel图表功能(5)
  • 2017-05-11asp.net页面中时间格式化的示例
  • 2017-05-11asp.net实现批量删除实例
  • 2017-05-11基于.Net的单点登录(SSO)实现解决方案
  • 2017-05-11模拟QQ心情图片上传预览示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net页面状态管理cookie和服务器状态管理Session
    • asp.net中用DataReader高效率分页
    • 在ASP.NET 2.0中操作数据之三十八:处理BLL和DAL的异常
    • asp.net 使用js分页实现异步加载数据
    • HttpRequest Get和Post调用其他页面的方法
    • 在ASP.NET 中实现单点登录
    • asp.net获取SQL所有数据库名、所有表名、所有字段名
    • ASP.NET配置KindEditor文本编辑器图文教程
    • .NET更新Xml中CDATA内容的方法实例
    • ASP.net中md5加密码的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有