[c#]asp.net开发微信公众平台(7)前6篇的整体框架demo源码

2019-03-02 00:58|来源: 网路

    这里给出的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源码,让任何人都可以入门

 1         public void LookMsgType(string msgType)
 2         {
 3 
 4             #region 判断消息类型
 5             switch (msgType)
 6             {
 7                 case "text":
 8                     RText mText = new RText();
 9                     mText = ReadXml.GetModel<RText>(mText, xmlModel);
10                     BLLWei.DoText(dbHome, mText);//文本消息
11                     break;
12                 case "image":
13                     RImg mImg = new RImg();
14                     mImg = ReadXml.GetModel<RImg>(mImg, xmlModel);
15                     BLLWei.DoImg(dbHome,mImg);//图片
16                     break;
17                 case "voice": //声音
18                     RVoice mVoice = new RVoice();
19                     mVoice = ReadXml.GetModel<RVoice>(mVoice, xmlModel);
20                     BLLWei.DoVoice(dbHome,mVoice);
21                     break;
22 
23                 case "video"://视频
24                     RVideo mVideo = new RVideo();
25                     mVideo = ReadXml.GetModel<RVideo>(mVideo, xmlModel);
26                     BLLWei.DoVideo(dbHome, mVideo);
27                     break;
28 
29                 case "location"://地理位置
30                     RLocation mLocation = new RLocation();
31                     mLocation = ReadXml.GetModel<RLocation>(mLocation, xmlModel);
32                     BLLWei.DoLocation(dbHome,mLocation);
33                     break;
34                 case "link"://链接
35                     RLink mLink = new RLink();
36                     mLink = ReadXml.GetModel<RLink>(mLink, xmlModel);
37                     BLLWei.DoLink(dbHome,mLink);
38                     break;
39                 #region 事件
40                 case "event":
41 
42                     switch (ReadXml.ReadModel("Event", xmlModel))
43                     {
44                         case "subscribe":
45 
46                             if (ReadXml.ReadModel("EventKey", xmlModel).IndexOf("qrscene_") >= 0)
47                             {
48                                 RCodeNotSub mNotSub = new RCodeNotSub();
49                                 mNotSub = ReadXml.GetModel<RCodeNotSub>(mNotSub, xmlModel);
50                                 BLLWei.DoCodeNotSub(dbHome,mNotSub);//未关注的新用户,扫描带参数的二维码关注
51                             }
52                             else
53                             {
54                                 RSub mSub = new RSub();
55                                 mSub = ReadXml.GetModel<RSub>(mSub, xmlModel);
56                                 BLLWei.DoSub(dbHome,mSub);//普通关注
57                             }
58                             break;
59                         case "unsubscribe":
60                             RUnsub mUnSub = new RUnsub ();
61                             mUnSub = ReadXml.GetModel<RUnsub>(mUnSub, xmlModel);
62                             BLLWei.DoUnSub(dbHome,mUnSub);//取消关注
63                             break;
64 
65                         case "SCAN":
66                             RCodeSub mCodeSub = new RCodeSub();
67                             mCodeSub = ReadXml.GetModel<RCodeSub>(mCodeSub, xmlModel);
68                             BLLWei.DoCodeSub(dbHome,mCodeSub);//已经关注的用户扫描带参数的二维码
69                             break;
70                         case "LOCATION"://用户上报地理位置
71 
72                             RSubLocation mSubLoc = new RSubLocation();
73                             mSubLoc = ReadXml.GetModel<RSubLocation>(mSubLoc, xmlModel);
74 
75                             BLLWei.DoSubLocation(dbHome, mSubLoc);
76                             break;
77                         case "CLICK"://自定义菜单点击
78 
79                             RMenuClick mMenuClk = new RMenuClick();
80                             mMenuClk = ReadXml.GetModel<RMenuClick>(mMenuClk, xmlModel);
81                             BLLWei.DoMenuClick(dbHome, mMenuClk);
82                             break;
83                         case "VIEW"://自定义菜单跳转事件
84 
85                             RMenuView mMenuVw = new RMenuView();
86                             mMenuVw = ReadXml.GetModel<RMenuView>(mMenuVw, xmlModel);
87                             BLLWei.DoMenuView(dbHome, mMenuVw);
88                             break;
89                     };
90                     break;
91                 #endregion
92             }
93             #endregion
94         }
View Code

 

 

 

     后续我还会写文章,分享过程, 只为了分享开发历程,大家可以看到我这么些篇文章中所有的截图都把微信号、名称等P掉了,虽然写文章时截图也是用的没有任何用户的一般号做测试的。   

 

 

 

asp.net开发微信公众平台文章目录

 

很多人下载之后无法正常使用,鉴于此刚刚新建的QQ群,有问题可以问我:群号183695596

群里提供两种形式的源码下载,方便使用。

 


转自:http://www.cnblogs.com/mochen/p/3669581

相关问答

更多
  • 能使用的!微信 在安卓手机里可以使用,安装是用java 开发的,所以 可以用java开发
  • 微信公众平台开发注意事项: 一、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请前往微信开放平台接入。 二、在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。 三、在开发过程中,可以使用接口调试工具来在线调试某些接口。 四、每个接口都有每日接口调用频次限制,可以在公众平台官网-开发者中心处查看具体频次。 五、在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在公众平台 ...
  • 小猪cms还凑合,,有源码的 ,每周更新两三个模板的 ,你可以看下 ,,
  • 登录微信公众平台,点击左下角的 开发者工具,即可看到相关文档。
  • 二次开发多费事 有现成的 而且开发都不愿意二次开发
  • 微网站开发模式教程:   第一步:申请消息接口   在公众平台网站的高级功能 – 开发模式页,点击“成为开发者”按钮,填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者可以任意填写,用作生成签名。   第二步:验证URL有效性   开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:   开发者通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,请原样返回 echostr参数内容,则接入生效,成为开发 ...
  • 主要看你的功能需求,你可以找上新三板的微信公众号外包公司,点点客 微盟啥的
  • 好多技术员就靠这个吃饭呢。。小猪cms的挺好哒。
  • 这个需要根据你找什么样的开发商,然后开发什么样的功能,如果是该需要对接你们系统之类的功能比较复杂,有几千的,也有好几万的,这个看你的需求
  • 微信公众平台的开发价格取决于功能和具体的外包公司,不同的地域价格也会略有差异。 我们给客户做的微信有30000元的也有10000多元的。 建议先把微信开发的需求整理好,然后多找几家公司进行报价。综合对比来选择。