[c#]asp.net开发微信公众平台(7)前6篇的整体框架demo源码
这里给出的demo是具备整体框架的微信公众平台源码, 所谓demo就是拿过去就可以直接演示使用的东西, 当然不会具备非常详细的具体到业务层面、数据层面的东西, 每个人都可以在此基础上自由发挥, 只要看完前6篇的也一定能开发出自己的东西。
demo简单易理解,任何人都可以看明白,这里说明下demo跟我实际项目中的区别:
1、demo没有连接数据库。 demo下载可以直接使用,连接数据库并不是每个人都很方便,且第1篇中已经把完完整整的数据库开源了,包括设计时的可视化界面, 想要连接数据库的,创建数据库之后添加一个EF连接就好, 连接方法在第2篇
2、demo没有封装接收到的微信消息模型。 因为收到的消息封装的目的是为了进行消息记录,添加到数据库,既然没有1,这个就也没有了, 消息封装第3篇已经写出;
3、demo入口处没有验证加密签名。 因为demo是要任何人拿回去就能用的,如果加上加密签名验证很多人可能调不通,本地测试的话根本没有加密签名供验证(实际上本地测试可以直接return true),为了任何人都能弄懂,就把验证方法去掉了, 验证方法的代码在第2篇一字不漏;
4、demo没有IOC注入和缓存相关。 并不是每个业务需求都用得上缓存和IOC注入,也并不是每个人都接触过这些, 为了通用,就去掉了。 若你在其他项目中遇到IOC注入和缓存处理相关的问题,都可以问我, 很乐意解答
总结:demo就是个完整的微信公众平台简易的框架,且适合任何一个开发者; 实际项目需要使用的数据库相关的在之前文章也全都有代码和操作方法;
根据demo任何人都可以超快速的做出属于自己的微信公众平台。
最重要的是分享整体思想~ 微信公众平台其实很简单,大多数人都是没有理清消息接收、处理的来龙去脉,就拿入口来说,就这些不同的case可能很多开发者都要很久才能理清(与技术能力无关,主要是有些朋友不能一下子想明白),分享出这个demo源码,让任何人都可以入门
public void LookMsgType(string msgType)
{ #region 判断消息类型
switch (msgType)
{
case "text":
RText mText = new RText();
mText = ReadXml.GetModel<RText>(mText, xmlModel);
BLLWei.DoText(dbHome, mText);//文本消息
break;
case "image":
RImg mImg = new RImg();
mImg = ReadXml.GetModel<RImg>(mImg, xmlModel);
BLLWei.DoImg(dbHome,mImg);//图片
break;
case "voice": //声音
RVoice mVoice = new RVoice();
mVoice = ReadXml.GetModel<RVoice>(mVoice, xmlModel);
BLLWei.DoVoice(dbHome,mVoice);
break; case "video"://视频
RVideo mVideo = new RVideo();
mVideo = ReadXml.GetModel<RVideo>(mVideo, xmlModel);
BLLWei.DoVideo(dbHome, mVideo);
break; case "location"://地理位置
RLocation mLocation = new RLocation();
mLocation = ReadXml.GetModel<RLocation>(mLocation, xmlModel);
BLLWei.DoLocation(dbHome,mLocation);
break;
case "link"://链接
RLink mLink = new RLink();
mLink = ReadXml.GetModel<RLink>(mLink, xmlModel);
BLLWei.DoLink(dbHome,mLink);
break;
#region 事件
case "event": switch (ReadXml.ReadModel("Event", xmlModel))
{
case "subscribe": if (ReadXml.ReadModel("EventKey", xmlModel).IndexOf("qrscene_") >= )
{
RCodeNotSub mNotSub = new RCodeNotSub();
mNotSub = ReadXml.GetModel<RCodeNotSub>(mNotSub, xmlModel);
BLLWei.DoCodeNotSub(dbHome,mNotSub);//未关注的新用户,扫描带参数的二维码关注
}
else
{
RSub mSub = new RSub();
mSub = ReadXml.GetModel<RSub>(mSub, xmlModel);
BLLWei.DoSub(dbHome,mSub);//普通关注
}
break;
case "unsubscribe":
RUnsub mUnSub = new RUnsub ();
mUnSub = ReadXml.GetModel<RUnsub>(mUnSub, xmlModel);
BLLWei.DoUnSub(dbHome,mUnSub);//取消关注
break; case "SCAN":
RCodeSub mCodeSub = new RCodeSub();
mCodeSub = ReadXml.GetModel<RCodeSub>(mCodeSub, xmlModel);
BLLWei.DoCodeSub(dbHome,mCodeSub);//已经关注的用户扫描带参数的二维码
break;
case "LOCATION"://用户上报地理位置 RSubLocation mSubLoc = new RSubLocation();
mSubLoc = ReadXml.GetModel<RSubLocation>(mSubLoc, xmlModel); BLLWei.DoSubLocation(dbHome, mSubLoc);
break;
case "CLICK"://自定义菜单点击 RMenuClick mMenuClk = new RMenuClick();
mMenuClk = ReadXml.GetModel<RMenuClick>(mMenuClk, xmlModel);
BLLWei.DoMenuClick(dbHome, mMenuClk);
break;
case "VIEW"://自定义菜单跳转事件 RMenuView mMenuVw = new RMenuView();
mMenuVw = ReadXml.GetModel<RMenuView>(mMenuVw, xmlModel);
BLLWei.DoMenuView(dbHome, mMenuVw);
break;
};
break;
#endregion
}
#endregion
}
后续我还会写文章,分享过程, 只为了分享开发历程,大家可以看到我这么些篇文章中所有的截图都把微信号、名称等P掉了,虽然写文章时截图也是用的没有任何用户的一般号做测试的。
很多人下载之后无法正常使用,鉴于此刚刚新建的QQ群,有问题可以问我:群号183695596
群里提供两种形式的源码下载,方便使用。
[c#]asp.net开发微信公众平台(7)前6篇的整体框架demo源码的更多相关文章
- [C#]asp.net开发微信公众平台----目录汇总-持续更新
1.[c#]asp.net微信公众平台开发(1)数据库设计 2.[c#]asp.net微信公众平台开发(2)多层架构框架搭建和入口实现 3.[c#]asp.net微信公众平台开发(3)微信消息封装及反 ...
- asp.net开发微信公众平台----目录汇总-持续更新
1.[c#]asp.net微信公众平台开发(1)数据库设计 2.[c#]asp.net微信公众平台开发(2)多层架构框架搭建和入口实现 3.[c#]asp.net微信公众平台开发(3)微信消息封装及反 ...
- [c#]asp.net开发微信公众平台(8)微信9大高级接口,自定义菜单
前7篇把最基础的消息接收和回复全做完了, 也把高级接口的入口和分拆处理写好了空方法, 此篇接着介绍微信的9大高级接口, 并着重讲解其中的自定义菜单. 微信9大接口为: 1.语音识别接口 2.客服接 ...
- [c#]asp.net开发微信公众平台(6)阶段总结、服务搭建、接入
经过前5篇,跟着一步步来的话,任何人都能搭建好一个能处理各种微信消息的框架了,总结一下最容易忽略的问题: 1.文本消息中可以使用换行符\n : 2.微信发来的消息中带的那个长整型的时间,我们完全 ...
- [c#]asp.net开发微信公众平台(5)微信图文消息
上篇已经成功响应了关注事件,也实现了文本消息的发送,这篇开始图文消息处理, 微信中最常用的消息类型就是图文消息了,因为它图文并茂,最能表达信息. 图文消息在微信中的接口定义如下: <xml> ...
- [c#]asp.net开发微信公众平台(1)数据库设计
开发微信公众平台之前,先去微信官方了解下大概的情况 这里:http://mp.weixin.qq.com/wiki/index.php :看了之后心里大致有数了,开始设计数据库,尽可能的考虑,未考虑到 ...
- [c#]asp.net开发微信公众平台(3)微信消息封装及反射赋值
上一篇已经搭建好整体框架,实现了入口的验证, 验证通过后就交给LookMsgType方法处理,LookMsgType方法主要是对微信发来的不同的消息进行分解,不同的类型交给业务逻辑层不同的方法处理 ...
- [c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
上一篇已经把所有消息封装且都各自有方法处理了,这篇从使用第一步——关注开始, 关注之后进行消息记录,同时回复文本消息给用户,关注方法:DoSub,另外新用户扫描带参数的二维码关注方法:DoCodeN ...
- [c#]asp.net开发微信公众平台(2)多层架构框架搭建和入口实现
上篇已经设计出比较完善的数据库了,这篇开始进入代码. 首先把上篇设计的数据库脚本在数据库中执行下,生成数据库,然后在VS中建立项目,为了方便理解和查看,我设计的都是很直白的类名和文件名,没有命名空间 ...
随机推荐
- 网易JS面试题与Javascript词法作用域说明
调用对象位于作用域链的前端,局部变量(在函数内部用var声明的变量).函数参数及Arguments对象都在函数内的作用域中--这意味着它们隐藏了作用域链更上层的任何同名的属性. 2010年9月14日, ...
- ASP.net 中关于Session的存储信息及其它方式存储信息的讨论与总结
通过学习和实践笔者总结一下Session 的存储方式.虽然里面的理论众所周知,但是我还是想记录并整理一下.作为备忘录吧.除了ASP.net通过Web.config配置的方式,还有通过其它方式来存储的方 ...
- C#中的委托和事件2-1(转)
PDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf引言 委托 和 事件在 .Net Framew ...
- 更换centos源
我的虚拟机中在安装GoAccess的时候,说找不到GeoIP...尴尬. 这里暂时不说GeoIP的事情,我想更新一下我的yum源,因为我系统(Centos 6.5)使用的是默认的源.速度比较慢,这里先 ...
- 通知栏快捷按钮自定义教程以及快捷面板提取的思路-转自魔趣论坛-lonyii2
原帖地址: http://bbs.mfunz.com/forum.php?mod=viewthread&tid=235198&extra=page%3D1%26filter%3Dtyp ...
- d3可视化实战03:神奇的superformula
需求驱动实现 前文讲过了D3的数据驱动机制,中间所举的例子都很简单.例如那个demo里面,绑定的数据是一个简单的数组,实现的图元也仅仅是一堆用SVG画的circle.但是现实世界中我们往往会遇到复杂的 ...
- Install the Yeoman toolset
参照:http://yeoman.io/codelab/setup.html 1:$npm install --global yo bower grunt-cli 提示以下错误 npm ERR! /p ...
- uva 10026 Shoemaker's Problem
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- MVC通俗演义系列开篇
最近在读<世界史通俗演义>,发现这本书非常好,比从小上大的历史书好的多.读的开心之余,也不敢跟别人说,怕被说成“通俗”.这跟英文的技术类文章很像.英文中的IT类文章几乎是通俗形象 ...
- elasticsearch 重启后,需要的操作
如果elasticsearch 集群挂了,请勿开启Logstash 同步数据,需等待elasticsearch集群恢复后,在继续写入