校园无障碍考勤即微校通到校微信公众号推送系统

时间:2019-05-15 04:13:25下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《校园无障碍考勤即微校通到校微信公众号推送系统》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《校园无障碍考勤即微校通到校微信公众号推送系统》。

第一篇:校园无障碍考勤即微校通到校微信公众号推送系统

校园无障碍考勤即微校通到校微信公众号推

送系统

校园无障碍考勤即微校通到校微信公众号推送系统

业务概述

多奥校园无障碍考勤即微校通到校微信公众号推送系统是校讯通平安短信系统的升级版本也是当前国内中小学普遍使用的信息交互平台,传统校讯通方案中采用的短距离刷卡考勤方式在实际使用过程中也凸显出其缺点:学校在上、放学期间校门的人流量剧增,出现学生排长队刷卡考勤的现象,严重影响刷卡的效率,另外需收取家长的短息费,不符合国家政策。

随着技术应用的发展,我们现在能够完全解决这个问题。2.4G校讯通无障碍考勤方案通过采用远距离感应读卡的数据交互方式,学生只需步行通过校门即可完成考勤,无需再像以往那样排队刷卡进出校。本方案支持微信公众号推送孩子到校信息含图片,为用户大大节约投资成本特别是为家长省略了短信费。技术方案

“校园2.4G无障碍考勤解决方案”+微校通到校微信公众号推送系统(以下简称本方案)是深圳市多奥科技有限公司在现有校讯通系统基础上进行的重大性能提升。

本方案主要面向学校考勤信息管理。当学生(或教师)佩戴2.4G有源复合卡通过校门进入或离开学校时,远距离读卡器就会读取学生卡片的资料,通过 RS485 线缆传输到学校的校讯通终端,微信平台发送平安信息及图片到家长手机。◆方案特点

1、远距离识别

应用2.4GRFID远距离感应技术,人员通过时,无需主动刷卡,只要把卡挂在胸前或放在书包中,直接通过即可被识别。

2、人性化快速通道

人员无需要停留等待,直接通过即可,可同时识别>500张卡,最远可支持80米距离。

3、识别率高

识别速度在80公里/小时以内,识别率可以达到100%,同时误码率为千万分之一,可以满足高识别率要求。

4、数据实时上报

考勤记录通过微校通终端实时上报平台,方便查询管理。◆网络拓扑

◆无障碍考勤系统组成 1、2.4GHz 远距离读卡器 2.4G远距离感应读卡器具有“定向识别”的通道,产品具有读卡距离远、识别速度快以及对多个电子卡同时进行识别的功能。

1.1、特点:

采用PVC塑料,坚固耐磨;性能稳定可靠,刷卡记录准确; 通信模块增加抗强电冲击和防雷功能,通信过程安全可靠; 数据采集速度快,保证数据的可靠性和完整性; 1.2、性能:

工作频率:2.4GHz-2.5GHz ISM微波段 工作方式:只读标签型;

识别方式:定向识别,椭圆形感应区域; 识别距离:3-80米;

防冲突性:可同时识别>100张卡;

数据接口:标准配置Wiegand26,RS485,RS232; 电源适配器:DC+9V ; 工作温度:-40℃~+85℃; 2、2.4GHz 有源电子标签

2.4G有源复合卡是在有源卡片基础之上增加ID/IC卡功能,加入了定位、防水等功能。卡片默认设置每1秒发射一次。2.1、特点:

ID卡功能,支持125K近距离读卡 ; IC卡功能,支持13.56Mhz近距离读卡;

适合采用跳频工作模式,具有超强抗干扰能力; 用户可自定义读写标准数据; 有效识读距离可达80米以上;

超宽工作频段设计,既符合相关行业规定,又能进行灵活的开发应用; 可同时读写多个标签,不受工作区内标签数量的限制和影响; 存储区供用户进行加密读、写、擦除再写操作; 2.2、性能:

标签类别:卡状; 工作频率:2.45GHz;

感应方式:自动感应可选; 识别距离:3-80米; 材料:PET,耐高温,防水; 外型尺寸:85*55*5.5mm; 重量:20g;

电池:内置纽扣锂电,可连续使用2年 ;

3、校讯通终端

微校通终端通过485方式与2.4G远距离感应读卡器进行通讯,采集考勤数据并上报校讯通平台。3.1、功能:

1、教师服务模块(可选)

教师签到:设置签到时间和地理位置,自动提醒签到,可按日、周、月推送签到信息

校园微网站:介绍校园的相关情况,可自定义菜单,图文并茂

全校通知:选择发送对象发送通知,读取回执,主要针对全校老师和家长

教师通讯录:将老师的通讯方式导入平台,方便老师联系,无需再存老师联系方式

活动报名:手机发起活动信息,可以在线报名,方便统计活动信息 问卷调查:手机发起问卷调查,可以在线作答,方便统计问卷信息 校园新闻:可以定期图文推送学校的相关新闻,不限条数 公文传阅:可以手机查阅上级传达的文件并作批复

教室预约:可以在线预约教室的使用时间,避免同时使用时间上面拥塞 会议考勤:统计参会人数和缺席人数,方便会议考勤 任课表:随时随地查询自己的课程表,方便快捷

教师随手拍:可以随时手机图文并茂分享学校的一些活动信息 教师通知:选择发送对象发送通知,读取回执,主要针对全校老师

学校信箱:无需老师之间互加微信便可以随时随地聊天,方便教师之间的沟通 教师请假:手机发送请假申请,审批方便快捷,方便移动办公 设备报修:提交维修电子流,方便相关负责人随时随地查看、处理

2、家校管理模块(可选)

优秀班文:图文展示优秀范文,方便家长了解学生在校情况 问卷调查:机发起问卷调查,可以在线作答,方便统计问卷信息 在线报名:手机发起活动信息,可以在线报名,方便统计活动信息 班级微圈:给家长和老师提供一个交流和沟通的空间

班级通知:选择发送对象发送通知,读取回执,主要针对本班家长 校园通知:接收查看学校发送的全校通知

学生请假条:手机发送请假申请,审批方便快捷,方便移动办公 班主任寄语:发布班主任寄语,方便手机查看 班级宣言:发布班级宣言,方便手机查看

班级值日表:发布班级值日表,方便手机查看 班级课程表:发布班级课程表,方便手机查看 作业发送:发布每日作业,方便手机查看 学校信箱:方便家长和老师之间进行沟通 学号管理:管理学生的学籍号

成绩查询:方便家长手机查询学生的成绩

3.2、性能

32位ARM CPU; 支持ID卡和IC卡;

内置充电电池,待机时间超过48小时; 使用镍氢电池性能稳定安全,更加环保; 大屏幕显示,高亮度、高背光,方便使用; 支持外接考勤机,最大支持8个; 室外机型设计,防水、防腐、防晒;

超大存储空间,可以存储5000个ID信息;

学生进出校考勤识别原理

为了实现对学生进出校的考勤识别,系统配置了两台2.4G远距离感应读卡器。如图2所示,假设两台读卡器分别标识成A点机及B点机,A点机一般安装在学校大门口,B点机安装在校内主要过道,当学生先经过A点机再经过B点机时,判断为学生进校,当学生先经过B点机再经过A点机时,系统判断为学生出校。示意图如下

进出校的识别方法:校讯通终端每2秒依次向AB点查询是否有卡数据上报,如果AB点读取的卡号不相同,则先将数据保存下来。如果AB点读取的卡号有相同的,则判断时间先后确认考勤记录是否为进出校(A时间小于B时间为进校,B时间小于A时间为出校),并将记录转换为考勤信息上报校讯通平台。

产品优势

◆2.4G读写器产品优势 多协议兼容;

具有“全向识别”的宽通道 ; 读卡距离远; 识别速度快;

多电子卡同时识读,可同时读写多个标签(多达500 个/秒以上); 工业级设计;

2.4G有源电子标签优势 采用复合卡设计;

采用跳频工作模式,具有超强抗干扰能力; 有效识读距离可达80米以上; 具有防水功能;

存储区供用户进行加密读、写、擦除再写操作,还开辟指定用户专用的永久专用字区

方案竞争优势: ◆组网方式优

多奥2.4G无障碍考勤方案采用微校通终端与2.4G读卡器相结合,实现了电子标签的远距离读取,与平台实时通讯,发送到校信息等功能。较其它运营商推广的2.4G读卡器+校园主机方式,实施更方便,功能更丰富,设备安装完还要开通服务且收费体验感更加好。◆实施成本低

多奥成凭借多年的智能一卡通软硬件开发实施经验,对产品的设计及成本管理有着独到的优势。方案实施成本比其它设备商节省了约1/3。

◆实施维护更方便

无障碍考勤设备无需专门的设置,不受网络病毒、操作系统故障等影响。设备安全可靠,发生故障时更换设备即可,可快速实施及维护,提高客户的满意度。◆卡扩展性更强

深圳市多奥科技无障碍考勤方式采用2.4G电子标签与IC、ID卡的复合卡方案,在同一张卡中集成了IC、ID卡的功能,既保护了现有投资,同时由于现有的一卡通设备大多数采用13.56M方案,因此复合卡更容易进行扩展,可以与学校的一卡通系统进行对接。◆应用功能更全面 由于采用复合卡方式,卡不仅可以用于考勤,水控,电控等等传统的智能一卡通。

第二篇:微信公众号(三)日常推送及活动策划

贵州新华电脑学院

推送时间上的选择

工作日,一般选择晚上9点推送。9点的时候,用户已经到家,还没有睡觉,但手机已经连上wifi了。网速对图文打开速度有很大影响,所以打开后的图文阅读会更加流畅。没有及时阅读到推送的用户,在次日上午的上班高峰时间,也能在手机上阅读。

双休日,一般选择早晨7-8点推送。现代人睡懒觉比较多,双休日赖床的时候习惯看微信丶微博。早上推送的话,按照推送时间,会默认排列在所有订阅号的最前面,打开率会比较高,而且订阅号折叠后,不会因为震动或铃声影响用户早晨的睡眠。

-------------------推送内容选择 一)日常内容规划

内容一定要切合公众号的自身性质,女装类公众号可以分享搭配,利用微信上新品,分享买家秀;卖美食的可以分享一些食谱,加上产品促销信息。总的来说,根据自身情况,规划适当的内容,切记不要跨领域发展。

群发推送的形式又各有特点:

单图文 信息传递更集中,适合促销

多图文 选择度更广,能够在一次推送中覆盖到不同需求用户 语音 拉近与用户的亲密感 图片 较少使用

视屏 对手机流量有很高要求,适合宣传企业精神/文化等

二)分享传播

贵州新华电脑学院

微信在传播形式上属于裂变式传播,到达率和精准度上都非常高,而且信息经熟人转发至朋友圈后,比一般的传播方式看起来更具有真实性。

我们店铺在尝试微信之前,在微淘内测阶段就开始尝试每日推送,所以积累了一定的内容。微信推送初期,我们将微淘上收藏/评论数最多的内容,搬运到微信上,经过数据整理,发现内容和质量优等的情况下,微信和微淘的数据都是比较一致的。

再经过比对分析,得出结论: 粉丝质量决定打开率 图片标题决定点击率 内容决定转发及分享

这点其实和运营店铺非常共通,精准的流量+吸引人的标题图片+优质的内容=成功!

三)活动规划

长期的类似内容推送,会引起用户的审美疲劳,从而降低活跃性,新奇有趣的活动,可以保持用户的活跃度,增加互动。所以,除了日常的推送外,还需要策划一系列的微信活动。

活动频率:一般建议为按照周/两周/月来划分,这样比较符合用户的记忆习惯。我们店铺一般是每周举办一次活动,活动周一上线推送,周五公布结果。

公布获奖名单时,可以顺势预告下周活动,一来可以起到承上启下的作用,二来可以安抚没有中奖的客户。一般用户参加过2-3次活动后,会养成长期阅读推送的习惯。

活动形式:策划的活动,尽可能要符合自身店铺利益点,这点上一期有提到过。我策划的几个活动供大家参考下:

1.微信答题 提出的问题最好和店铺相关,让用户返回到店铺寻找相关答案,加深对店铺的印象,加强店铺品牌的认识度。

贵州新华电脑学院

2.微信签到 连续签到,或与公众号聊天满五天,即可获得神秘礼品或优惠券。

3.为店铺画皇冠 让用户为公众号画皇冠并附上祝福语,可以宣传打造店铺文化,同时具有娱乐性和观赏性

4.转发介绍土豪

将公众号加上自己的祝福语转发至朋友圈。前面提到,微信属于裂变式传播,经过熟人在朋友圈内发布,可以起到宣传店铺的效果。

活动的形式多种多样,除了以上几种,还可以将自己店铺的产品或活动融入时下比较火热的平面游戏,譬如:对诗丶大家来找茬丶你画我猜等等。

第三篇:微商分销系统微信公众号运营技巧

微商分销系统微信公众号运营技巧

一、个人号

1、个人号曝光很强大

现在很多企业都是公众号+个人号的形式,不管是不是做微信传播的企业都这样做,足以说明个人号的威力。一个个人号能加5000好友,如果加满,你的一条朋友圈就能保证有1000个人看,这曝光率比做广告都要强。所以个人号很有必要。

2、个人号如何突破好友限制

一个个人号的好友上限是5000,每个号增加到4500人左右时,就可以开通第二个号,开通之后,复制头像和昵称,就相当于有了另一个客户池。如果有多个号最好使用能多开微信的APP,不然切换账号很麻烦,一个手机最多可以开10多个微信号。

3、起一个靠谱的名字

响亮、好听、好记是名字的三大标准,不要太长也不要太短。

4、不要经常改变微信昵称和头像

昵称和头像一旦确定,你在粉丝面前的形象就确定了,千万不能随意改,改了粉丝就不认识你了。

5、让你的名字显示在通讯第一条

名字前面加A或者a都可以。

二、朋友圈

6、朋友圈如何增加互动?

有三种类型的文案比较受欢迎:美食、美女、搞笑,这几种类型的东西在朋友圈能提高互动率。

还可以在你回复别人的时候不要单独回复,而是直接发到评论栏中,这样所有人都能看到你跟别人聊的内容,显得很热闹,也能提高互动。

7、可以自己评论自己

如果没有人和你互动显得太冷清,那么,你可以自己给自己评论。比如你发了一个广告,希望让别人去购买,这时就可以统一回复:“感谢大家的支持,找我要购买方式的人太多了,我会一一告诉大家,别着急。”

8、朋友圈的配图数量最好是3、6、9

这几个数字的图片放出去排列整齐,比较顺眼,也会吸引人点开,强迫症也会喜欢的。

9、学会发九宫图的朋友圈

朋友圈发9张图片,也就是所谓的九宫图,可以把第5张也就是中心那张发成你的广告图片,其它8张发成同类型的趣味图片,这样不仅高大上也会引起很多人的注意,同时又不会引起别人的反感。

10、一定要发短链接

如果发的是长链接,手机屏幕小,会影响美观,生成短链接的方法有:把链接发到微博,微博会自动生成短链接,然后copy过来。或者直接百度:短链接生成,会有很多生成短链接的网站。

11、转发文章要加上评论

朋友圈转发文章的时候,最好加上自己的评论或摘录文章中的精华,引起阅读兴趣。

12、早上发励志文字和图片

朋友圈早上发励志的文字和图片效果很不错,配图很重要,一图胜千言。发的时候最好再加上自己的个人见解,这也是打造个人品牌的一步。

13、朋友圈文字超过6行会被折叠起来

朋友圈发的文字超过6行就会被折叠起来,所以说,超过6行必须要点开全文才能看到。

我们在发完朋友圈后,可以把全文复制到评论里,这样别人在刷朋友圈时,就可以直接在评论里看到你的全文,评论的字数可以写很长呦。

14、把广告语植入“所在位置”

发朋友圈的时候,点开“所在位置”,再点“搜索附近位置”,然后输入你的广告语,点搜索后会出现“没有找到你的位置?创建新位置”,点击后会出现“创建位置”的窗口。创建好位置后,再发朋友圈时,你就能在“所在位置”里,看到你之前设计的广告语了。

15、多分享你的个人状态

谁都不喜欢跟一个机器人对话,因此一定要把你的个人号打造成有个性、有生活的活生生的人,尤其企业号更要注意这一点,不能一味发广告,发一些个人性的状态也很好用。

三、好友管理

16、学会使用添加标签的功能

通过标签归类不同的好友,把朋友和客户分开,群发消息时、发朋友圈时都可以使用标签筛选,很方便。

17、利用好微信的置顶功能

微信有个置顶功能,如果你的好友和群多的话,就必须要用到这个功能,可以把最近的客户、重要的好友或群聊选择置顶,这样就可以避免错过重要消息了,等处理完,再取消置顶。

18、用QQ绑定你的微信号

用QQ绑定微信后,就可以统一推广你的QQ号,让别人通过QQ加你微信,当你的微信加满了,或是换新微信了,这时就可以解除原来绑定的微信,重新绑定你在用的新微信,尤其是对于做网络的人来说很重要。

19、添加好友的时候,注意验证消息

尽量不要使用默认的验证消息,如果实在不知道怎么写,就可以说:朋友推荐认识的,会提高通过率。

20、群发消息用“你”,千万不要用“你们”

群发文字消息或语音消息时,称呼尽量用“你”,千万不要用“你们”,这样显得更亲切,让别人看不出来这是群发的,如果是群发消息,几乎很少人会理你的。

利用HiShop销客多微信分销系统,内置强大的营销活动,通过引流吸粉营销,获得丰富的客户资源,提高销量就是这么简单。

第四篇:持续更新微信公众号文章批量采集系统的构建

持续更新,微信公众号文章批量采集系统的构建

我从2014年就开始做微信公众号内容的批量采集,最开始的目的是为了做一个html5的垃圾内容网站。当时垃圾站采集到的微信公众号的内容很容易在公众号里面传播。当时批量采集特别好做,采集入口是公众号的历史消息页。这个入口到现在也是一样,只不过越来越难采集了。采集的方式也更新换代了好多个版本。后来在2015年html5垃圾站不做了,转向将采集目标定位在本地新闻资讯类公众号,前端显示做成了app。所以就形成了一个可以自动采集公众号内容的新闻app。曾经我一直担心有一天微信技术升级之后无法采集内容了,我的新闻app就失效了。但随着微信不断的技术升级,采集方法也随之升级,反而使我越来越有信心。只要公众号历史消息页存在,就能批量采集到内容。所以今天决定将采集方法整理之后写下来。我的方法来源于许多同行的分享精神,所以我也会延续这个精神,将我的成果分享出来。本篇文章将持续更新,你所看到的内容将保证在看到的时间是可用的。首先我们来看一个微信公众号历史消息页面的链接地址:http://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MjM5MzczNjY2NA==#wechat_webview_type=1&wechat_redirect =========2017年1月11日更新========= 现在根据不同的微信个人号,会出现两种不同的历史消息页面地址,下面是另一种历史消息页的地址,第一种地址的链接会在anyproxy中显示302跳转:https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA3NDk5MjYzNg==&scene=124#wechat_redirect

第一种链接地址的页面样式:第二种链接地址的页面样式:根据目前掌握的信息,两种页面形式无规律的出现在不同的微信号中,有的微信号始终是第一种页面形式,有的就始终是第二种页面形式。上面这个链接是一个微信公众号历史消息页面的真实链接,但是我们把这个链接输入到浏览器中会显示:请从微信客户端访问。这是因为实际上这个链接地址还需要几个参数才能正常显示内容。下面我们就来看看可以正常显示内容的完整链接是什么样的: //第一种链接

http://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MjM5NTM1NjczMw==&uin=NzM4MTk1ODgx&key=a226a081696afed0d9dfa0972fa431e116e5c4572ce52343178ad4e9a2b94aeaad6ac4dd87de3e56f72209a73a32e9cc2052f68aca4884e36cf726e99f2671630c741d8e4c29abe4a049d1a71eeb2be5&devicetype=android-17&version=2605033c&lang=zh_CN&nettype=WIFI&ascene=1&pass_ticket=zbA7PswOPKySRpyEYI5kDCjRiljxcpzdbTuVMauFGemgdp8R1DY1uQY49srehWab&wx_header=1 //第二种

http://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA3NDk5MjYzNg==&scene=124&uin=NzM4MTk1ODgx&key=5134ab1cc362a0324183dbd55a2680d11ccbaa34cdb349ee9be58f5b666092ddb17adf8a88dc788831923f3c6087547d651f04209f72334d511c9e118a3800d7b05a324a38903f79cff940cf749ecd5a&devicetype=android-17&version=2605033c&lang=zh_CN&nettype=WIFI&a8scene=3&pass_ticket=Fo3zjtJcbPfijNHKUIQbV%2BeHsAqhbjJCwzTfV48u%2FCZRRGTmI8oqmHDxxfEL8ke%2B&wx_header=1 这个地址是通过微信客户端打开历史消息页面之后,再使用后面介绍的代理服务器软件获取到的。这里面有几个参数:action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;其中重要的参数是:__biz;uin=;key=;pass_ticket=;这4个参数。__biz是公众号的一个类似id的参数,每个公众号拥有一个微信的biz,目前极小概率会发生公众号的biz会变化的事件;剩下的3个参数是有关用户的id和令牌票据之类的意思,这3个参数的值是通过微信的客户端生成后自动补充到地址栏中的。所以我们想采集公众号就必须通过一个微信客户端app。在以前的微信版本中这3个参数还可以获取一次之后在有效期之内多个公众号通用。现在的版本已经是每次访问一个公众号都会更换参数值。我现在所使用的方法只需要关注__biz这个参数就可以了。

我的采集系统由以下几部分组成:

1、一个微信客户端:可以是一台手机安装了微信的app,或者是用电脑中的安卓模拟器。经过实测ios的微信客户端在批量采集过程中崩溃率高于安卓系统。为了降低成本,我使用的是安卓模拟器。

2、一个微信个人号:为了采集内容不仅需要微信客户端,还要有一个微信个人号专门用于采集,因为这个微信号就干不了其它事情了。

3、本地代理服务器系统:目前使用的方法是通过Anyproxy代理服务器将公众号历史消息页面中的文章列表发送到自己的服务器上。具体安装设置方法在后面详细介绍。

4、文章列表分析与入库系统:我用的是php语言编写的,后文将详细介绍如何分析文章列表和建立采集队列实现批量采集内容。步骤

一、安装模拟器或使用手机安装微信客户端app,申请微信个人号并登录到app上面。这一点就不过多介绍了,大家都会。

二、代理服务器系统安装目前我使用的是Anyproxy,AnyProxy。这个软件的特点是可以获取到https链接的内容。在2016年年初的时候微信公众号和微信文章开始使用https链接。并且Anyproxy可以通过修改rule配置实现向公众号的页面中插入脚本代码。下面开始介绍安装与配置过程。

1、安装 NodeJS2、在命令行或者终端运行 npm install-g anyproxy,mac系统需要加上sudo;

3、生成RootCA,https需要这个证书:运行命令sudo anyproxy--root(windows可能不需要sudo);

4、启动anyproxy运行命令:sudo anyproxy-i;参数-i是解析HTTPS的意思;

5、安装证书,在手机或安卓模拟器中安装证书:方法一: 启动anyproxy,浏览器打开 http://localhost:8002/fetchCrtFile,能获取rootCA.crt文件

方法二:启动anyproxy,http://localhost:8002/qr_root 可以获取证书路径的二维码,移动端安装时会比较便捷 建议通过二维码将证书安装到手机中。

6、设置代理:安卓模拟器的代理服务器地址是wifi链接的网关,可以通过吧dhcp设置为静态后看到网关地址,看完后别忘了再设置为自动。手机中的代理服务器地址就是运行anyproxy的电脑的ip地址。代理服务器默认端口是8001;现在打开微信,点击到任意一个公众号历史消息或文章中,在终端都可以看到响应的代码滚动。如果没有出现,请检查手机的代理设置是否正确。现在打开浏览器地址http://localhost:8002 可以看到anyproxy的web界面。从微信中点开一个历史消息页面,然后再看浏览器的web界面,会滚动出现历史消息页面的地址。以/mp/getmasssendmsg开头的网址就是微信历史消息页面。左边一个小锁头表示这个页面是https加密的。现在我们点击一下这一行; =========2017年1月11日更新========= 部分微信号以/mp/getmasssendmsg开头的网址会出现302跳转,跳转到了/mp/profile_ext?action=home开头的地址。所以点开这个地址才可以看到内容。

右边如果出现了html的文件内容则表示解密成功。如果没有内容,请检查anyproxy的运行模式是否有参数i,是否生成了ca证书,手机是否正确安装证书。现在我们的手机中的所有内容都已经可以明文通过代理服务器了。下面我们要修改配置代理服务器,使公众号内容被获取到。

一、找到配置文件:mac系统中配置文件的位置在/usr/local/lib/node_modules/anyproxy/lib/;windows系统请原谅我暂时不知道。应该可以根据类似mac的文件夹地址找到这个目录。

二、修改文件rule_default.js找到replaceServerResDataAsync: function(req,res,serverResData,callback)函数修改函数内容(请注意详细阅读注释,这里只是介绍原理,理解后根据自己的条件修改内容):=========2017年1月11日更新=========因为出现了两种页面形式,且在不同的微信号中始终显示同一种页面形式,但为了能兼容两种页面形式,以下的代码会保留两种页面形式的判断,你也可以根据自己的页面形式去掉lireplaceServerResDataAsync: function(req,res,serverResData,callback){ if(/mp/getmasssendmsg/i.test(req.url)){//当链接地址为公众号历史消息页面时(第一种页面形式)if(serverResData.toString()!== ''){ try {//防止报错退出程序

var reg = /msgList =(.*?);/;//定义历史消息正则匹配规则 var ret = reg.exec(serverResData.toString());//转换变量为string HttpPost(ret[1],req.url,'getMsgJson.php');//这个函数是后文定义的,将匹配到的历史消息json发送到自己的服务器 var http = require('http');http.get('http://xxx.com/getWxHis.php', function(res){//这个地址是自己服务器上的一个程序,目的是为了获取到下一个链接地址,将地址放在一个js脚本中,将页面自动跳转到下一页。后文将介绍getWxHis.php的原理。res.on('data', function(chunk){ callback(chunk serverResData);//将返回的代码插入到历史消息页面中,并返回显示出来 })});}catch(e){//如果上面的正则没有匹配到,那么这个页面内容可能是公众号历史消息页面向下翻动的第二页,因为历史消息第一页是html格式的,第二页就是json格式的。try { var json = JSON.parse(serverResData.toString());if(json.general_msg_list!= []){ HttpPost(json.general_msg_list,req.url,'getMsgJson.php');//这个函数和上面的一样是后文定义的,将第二页历史消息的json发送到自己的服务器 } }catch(e){ console.log(e);//错误捕捉 } callback(serverResData);//直接返回第二页json内容 } } }else if(/mp/profile_ext?action=home/i.test(req.url)){//当链接地址为公众号历史消息页面时(第二种页面形式)try { var reg = /var msgList = '(.*?)';/;//定义历史消息正则匹配规则(和第一种页面形式的正则不同)

var ret = reg.exec(serverResData.toString());//转换变量为string HttpPost(ret[1],req.url,'getMsgJson.php');//这个函数是后文定义的,将匹配到的历史消息json发送到自己的服务器 var http = require('http');http.get('http://xxx.com/getWxHis', function(res){//这个地址是自己服务器上的一个程序,目的是为了获取到下一个链接地址,将地址放在一个js脚本中,将页面自动跳转到下一页。后文将介绍getWxHis.php的原理。res.on('data', function(chunk){ callback(chunk serverResData);//将返回的代码插入到历史消息页面中,并返回显示出来 })});}catch(e){ callback(serverResData);} }else if(/mp/profile_ext?action=getmsg/i.test(req.url)){//第二种页面表现形式的向下翻页后的json try { var json = JSON.parse(serverResData.toString());if(json.general_msg_list!= []){ HttpPost(json.general_msg_list,req.url,'getMsgJson.php');//这个函数和上面的一样是后文定义的,将第二页历史消息的json发送到自己的服务器 } }catch(e){ console.log(e);} callback(serverResData);}else if(/mp/getappmsgext/i.test(req.url)){//当链接地址为公众号文章阅读量和点赞量时 try { HttpPost(serverResData,req.url,'getMsgExt.php');//函数是后文定义的,功能是将文章阅读量点赞量的json发送到服务器 }catch(e){ } callback(serverResData);}else if(/s?__biz/i.test(req.url)|| /mp/rumor/i.test(req.url)){//当链接地址为公众号文章时(rumor这个地址是公众号文章被辟谣了)try { var http = require('http');http.get('http://xxx.com/getWxPost.php', function(res){//这个地址是自己服务器上的另一个程序,目的是为了获取到下一个链接地址,将地址放在一个js脚本中,将页面自动跳转到下一页。后文将介绍getWxPost.php的原理。res.on('data', function(chunk){ callback(chunk serverResData);})});}catch(e){ callback(serverResData);} }else{ callback(serverResData);} },上面这段代码是利用anyproxy可以修改返回页面内容的功能,向页面注入脚本,和将页面内容发送到服务器上。使用这个原理来批量采集公众号内容和阅读量。这段脚本中自定义了一个函数,下面详细介绍:在rule_default.js文件末尾添加以下代码:function HttpPost(str,url,path){//将json发送到服务器,str为json内容,url为历史消息页面地址,path是接收程序的路径和文件名 var http = require('http');var data = { str: encodeURIComponent(str), url: encodeURIComponent(url)};content = require('querystring').stringify(data);var options = { method: 'POST', host: 'www.xiexiebang.com',//注意没有http://,这是服务器的域名。port: 80, path: path,//接收程序的路径和文件名 headers: { 'Content-Type': 'application/x-www.xiexiebang.com的地址,这样会导致anyproxy死机,找到函数replaceRequestOption : function(req,option),修改函数内容:replaceRequestOption : function(req,option){ var newOption = option;if(/google/i.test(newOption.headers.host)){ newOption.hostname = 'www.xiexiebang.com';newOption.port = '80';} return newOption;}, 以上就是针对anyproxy的rule文件的修改配置,配置修改完成之后,重新启动anyproxy。mac系统里按control c中断程序,再输入命令sudo anyproxy-i启动;如果启动报错,可能是程序没有退出干净,端口被占用。这时输入命令ps-a查看占用的pid,再输入命令“kill-9 pid”这里将pid替换成查询到的pid号码。杀死进程之后就可以启动anyproxy了。还是那句话windows的命令请原谅我不太熟悉。

接下来详细介绍服务器上接收程序的设计原理:(以下代码并不是直接可以用的,只是介绍原理,其中一部分需要根据自己的服务器数据库框架进行编写)

1、getMsgJson.php:这个程序负责接收历史消息的json并解析后存入数据库 $str = $_POST['str'];$url = $_POST['url'];//先获取到两个POST变量 //先针对url参数进行操作

parse_str(parse_url(htmlspecialchars_decode(urldecode($url)),PHP_URL_QUERY),$query);//解析url地址 $biz = $query['__biz'];//得到公众号的biz //接下来进行以下操作

//从数据库中查询biz是否已经存在,如果不存在则插入,这代表着我们新添加了一个采集目标公众号。//再解析str变量

$json = json_decode($str,true);//首先进行json_decode if(!$json){ $json = json_decode(htmlspecialchars_decode($str),true);//如果不成功,就增加一步htmlspecialchars_decode } foreach($json['list'] as $k=>$v){ $type = $v['comm_msg_info']['type'];if($type==49){//type=49代表是图文消息 $content_url = str_replace('', '', htmlspecialchars_decode($v['app_msg_ext_info']['content_url']));//获得图文消息的链接地址

$is_multi = $v['app_msg_ext_info']['is_multi'];//是否是多图文消息

$datetime = $v['comm_msg_info']['datetime'];//图文消息发送时间

//在这里将图文消息链接地址插入到采集队列库中(队列库将在后文介绍,主要目的是建立一个批量采集队列,另一个程序将根据队列安排下一个采集的公众号或者文章内容)//在这里根据$content_url从数据库中判断一下是否重复 if('数据库中不存在相同的$content_url'){ $fileid = $v['app_msg_ext_info']['fileid'];//一个微信给的id $title = $v['app_msg_ext_info']['title'];//文章标题

$title_encode = urlencode(str_replace(' ', '', $title));//建议将标题进行编码,这样就可以存储emoji特殊符号了 $digest = $v['app_msg_ext_info']['digest'];//文章摘要 $source_url = str_replace('', '', htmlspecialchars_decode($v['app_msg_ext_info']['source_url']));//阅读原文的链接 $cover = str_replace('', '', htmlspecialchars_decode($v['app_msg_ext_info']['cover']));//封面图片

$is_top = 1;//标记一下是头条内容 //现在存入数据库

echo '头条标题:'.$title.$lastId.'n';//这个echo可以显示在anyproxy的终端里 } if($is_multi==1){//如果是多图文消息

foreach($v['app_msg_ext_info']['multi_app_msg_item_list'] as $kk=>$vv){//循环后面的图文消息 $content_url = str_replace('','',htmlspecialchars_decode($vv['content_url']));//图文消息链接地址

//这里再次根据$content_url判断一下数据库中是否重复以免出错

if('数据库中不存在相同的$content_url'){ //在这里将图文消息链接地址插入到采集队列库中(队列库将在后文介绍,主要目的是建立一个批量采集队列,另一个程序将根据队列安排下一个采集的公众号或者文章内容)$title = $vv['title'];//文章标题

$fileid = $vv['fileid'];//一个微信给的id $title_encode = urlencode(str_replace(' ','',$title));//建议将标题进行编码,这样就可以存储emoji特殊符号了 $digest = htmlspecialchars($vv['digest']);//文章摘要 $source_url = str_replace('','',htmlspecialchars_decode($vv['source_url']));//阅读原文的链接 //$cover = getCover(str_replace('','',htmlspecialchars_decode($vv['cover'])));$cover = str_replace('','',htmlspecialchars_decode($vv['cover']));//封面图片

//现在存入数据库

echo '标题:'.$title.$lastId.'n';} } } } } ?> 再次强调代码只是原理,其中一部分注视的代码要自己编写。

2、getMsgExt.php获取文章阅读量和点赞量的程序 $str = $_POST['str'];$url = $_POST['url'];//先获取到两个POST变量 //先针对url参数进行操作

parse_str(parse_url(htmlspecialchars_decode(urldecode($url)),PHP_URL_QUERY),$query);//解析url地址 $biz = $query['__biz'];//得到公众号的biz $sn = $query['sn'];//再解析str变量

$json = json_decode($str,true);//进行json_decode //$sql = 'select * from `文章表` where `biz`=''.$biz.'' and `content_url` like '%'.$sn.'%'' limit 0,1;//根据biz和sn找到对应的文章

$read_num = $json['appmsgstat']['read_num'];//阅读量 $like_num = $json['appmsgstat']['like_num'];//点赞量

//在这里同样根据sn在采集队列表中删除对应的文章,代表这篇文章可以移出采集队列了

//$sql = 'delete from `队列表` where `content_url` like '%'.$sn.'%''

//然后将阅读量和点赞量更新到文章表中。

exit(json_encode($msg));//可以显示在anyproxy的终端里 ?>

3、getWxHis.php、getWxPost.php两个程序比较类似,一起介绍==========2017年1月11日更新==========因为出现了两种页面表现形式,拼接历史消息页面的地址也应该发生改变,但是目前实测,即使微信客户端出现的是第二种页面表现形式,也可以将第一种页面的链接地址发送给微信,同样有效。

//getWxHis.php 当前页面为公众号历史消息时,读取这个程序

//在采集队列表中有一个load字段,当值等于1时代表正在被读取

//首先删除采集队列表中load=1的行 //然后从队列表中任意select一行 if('队列表为空'){ //队列表如果空了,就从存储公众号biz的表中取得一个biz,这里我在公众号表中设置了一个采集时间的time字段,按照正序排列之后,就得到时间戳最小的一个公众号记录,并取得它的biz $url = 'http://mp.weixin.qq.com/mp/getmasssendmsg?__biz='.$biz.'#wechat_webview_type=1&wechat_redirect';//拼接公众号历史消息url地址(第一种页面形式)$url = 'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz='.$biz.'&scene=124#wechat_redirect';//拼接公众号历史消息url地址(第二种页面形式)

//更新刚才提到的公众号表中的采集时间time字段为当前时间戳。}else{ //取得当前这一行的content_url字段 $url = $content_url;//将load字段update为1 } echo 'setTimeout(function(){window.location.href=''.$url.'';},2000);';//将下一个将要跳转的$url变成js脚本,由anyproxy注入到微信页面中。?>

//getWxPost.php 当前页面为公众号文章页面时,读取这个程序

//首先删除采集队列表中load=1的行

//然后从队列表中按照“order by id asc”选择多行(注意这一行和上面的程序不一样)if(!empty('队列表')&& count('队列表中的行数')>1){//(注意这一行和上面的程序不一样)//取得第0行的content_url字段 $url = $content_url;//将第0行的load字段update为1 }else{ //队列表还剩下最后一条时,就从存储公众号biz的表中取得一个biz,这里我在公众号表中设置了一个采集时间的time字段,按照正序排列之后,就得到时间戳最小的一个公众号记录,并取得它的biz $url = 'http://mp.weixin.qq.com/mp/getmasssendmsg?__biz='.$biz.'#wechat_webview_type=1&wechat_redirect';//拼接公众号历史消息url地址(第一种页面形式)$url = 'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz='.$biz.'&scene=124#wechat_redirect';//拼接公众号历史消息url地址(第二种页面形式)

//更新刚才提到的公众号表中的采集时间time字段为当前时间戳。} echo 'setTimeout(function(){window.location.href=''.$url.'';},2000);';//将下一个将要跳转的$url变成js脚本,由anyproxy注入到微信页面中。?> 这两段程序的意义是:从队列表中读取出下一个采集内容的信息,如果是历史消息页,则将biz拼接到地址中(注意:评论区有朋友以为key和pass_ticket也要拼接,实则不需要),通过js的方式输出到页面,如果下一条是文章,则将历史消息列表json中的文章地址直接输出为js。同样文章内容的地址中不包含uin和key这样的参数,这些参数都是由客户端自动补充的。这两个程序的微小差别是因为当读取公众号历史消息页面时,anyproxy会同时做两件事,第一是将历史消息的json发送到服务器,第二是获取到下一页的链接地址。但是这两个操作是存在时间差的,第一次读取下一页地址时候本来应该是得到当前这个公众号文章的第一条链接地址,但是这时候历史消息的json还没有发送到服务器,所以只能得到第二个公众号的历史消息页面。在读取第二个公众号历史消息页面之后得到的下一页地址则是第一个公众号的第一篇文章的地址。当队列还剩下一条记录时,就需要再去取得下一个公众号的链接地址,否则如果当队列空了再去取得下一个公众号的链接地址,就会循环到上面提到的第一次读取时的情况,这样就会出现两个公众号历史消息列表和文章采集穿插进行的情况。刚才这4个PHP程序提到了几个数据表,下面再讲一下数据表如何设计。这里只介绍一些主要字段,现实应用中还会根据自己程序的不同添加上其它有必要的字段。

1、微信公众号表CREATE TABLE `weixin`(`id` int(11)NOT NULL AUTO_INCREMENT, `biz` varchar(255)DEFAULT '' COMMENT '公众号唯一标识biz', `collect` int(11)DEFAULT '1' COMMENT '记录采集时间的时间戳', PRIMARY KEY(`id`));

2、微信文章表CREATE TABLE `post`(`id` int(11)NOT NULL AUTO_INCREMENT, `biz` varchar(255)CHARACTER SET utf8 NOT NULL COMMENT '文章对应的公众号biz', `field_id` int(11)NOT NULL COMMENT '微信定义的一个id,每条文章唯一', `title` varchar(255)NOT NULL DEFAULT '' COMMENT '文章标题', `title_encode` text CHARACTER SET utf8 NOT NULL COMMENT '文章编码,防止文章出现emoji', `digest` varchar(500)NOT NULL DEFAULT '' COMMENT '文章摘要', `content_url` varchar(500)CHARACTER SET utf8 NOT NULL COMMENT '文章地址', `source_url` varchar(500)CHARACTER SET utf8 NOT NULL COMMENT '阅读原文地址', `cover` varchar(500)CHARACTER SET utf8 NOT NULL COMMENT '封面图片', `is_multi` int(11)NOT NULL COMMENT '是否多图文', `is_top` int(11)NOT NULL COMMENT '是否头条', `datetime` int(11)NOT NULL COMMENT '文章时间戳', `readNum` int(11)NOT NULL DEFAULT '1' COMMENT '文章阅读量', `likeNum` int(11)NOT NULL DEFAULT '0' COMMENT '文章点赞量', PRIMARY KEY(`id`));

3、采集队列表CREATE TABLE `tmplist`(`id` int(11)unsigned NOT NULL AUTO_INCREMENT, `content_url` varchar(255)DEFAULT NULL COMMENT '文章地址', `load` int(11)DEFAULT '0' COMMENT '读取中标记', PRIMARY KEY(`id`), UNIQUE KEY `content_url`(`content_url`));以上就是由微信客户端、微信号、anyproxy代理服务器、PHP程序、mysql数据库共同组成的微信公众号文章批量自动采集系统。在接下来的文章中,还会再进一步详细介绍如何保存文章内容,如何提高采集系统的稳定性,以及其它我的系统运行过程中得到的经验。非常希望大家能给予意见和交流,欢迎骚扰微信号cuijin。持续更新,微信公众号文章批量采集系统的构建

微信公众号文章采集的入口--历史消息页详解

微信公众号文章页的分析与采集提高微信公众号文章采集效率,anyproxy进阶使用方法

第五篇:基于微信公众号的教务信息查询系统设计与实现

基于微信公众号的教务信息查询系统设计与实现

摘 要:基于移动社交平台微信和国内领先的云平台新浪云(SAE),开发大学生用户覆盖率很高的教务信息查询系统,以微信公众号为系统入口,以HTML5开发适应移动端的响应式页面,以PHP+MYSQL为服务端开发框架,以新浪SAE为部署平台。系统具有随时随地使用、前端轻量级、后端灵活、用户体验良好的特点。

关键词:微信公众号;教务系统;云平台

DOI:10.11907/rjdk.171098

中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2017)009-0111-03

Abstract:This paper describes the comprehensive use of the new WeChat mobile social networking platform and leading cloud platform Sina cloud(SAE),the development of college students’ coverage of users management information system is very high,with WeChat as the public entrance to adapt to the development of HTML5 system,the mobile terminal of the response page,with PHP+MYSQL as the server framework with sina SAE,deployment platform,system has used,front and rear whenever and wherever possible the lightweight flexible,good user experience features.Key Words:WeChat public number; Educational administration system; cloud platform

0 引言

高校教务信息的发布是学校重要管理活动之一,如何提高信息发布的精确性、及时性和有效性,提高学生对教务管理的粘连度,一直广受关注。随着IT技术的更新迭代,移动社交逐渐覆盖了人们的日常生活,传统的服务端计算也搬到了易扩展的云平台上,这些技术的创新促使管理系统的开发走上了一个新的台阶。本文基于最新的移动社交平台微信和国内最好的PaaS云计算平台新浪云(SAE),开发一款可以在移动端设备上使用的高校教务信息查询系统,使用微信公众号作为入口,实现用户绑定、成绩查询、课表查询、自习教室查询、教务通知查询、考试安排查询等功能。微信公众号优势

微信公众号是在微信基础平台上扩展的功能模块,通过这一平台,可以方便地与特定群体实现文字、图片、语音的全方位沟通、互动。微信公众平台的传播方式是一对多的传播,直接将消息推送到手机,因此达到率和被观看率几乎是100%。微信公众平台相比于其它网络平台在传播方面具有明显优势:①微信是天然的用户接口,只要登陆微信,系统即可获取用户位置、时间,并且支持图片、二维码、NFC等富媒体,做到随时随地交互,并能对接任何系统,信息传达效率高;②轻量级前端使用HTML5技术带来良好用户体验,重后端保证系统运行稳定;③用户自由度较高,用户订阅、推送功能自主选择;④微信用户群数以亿计,公众号特别适于社会组织向用户提供业务服务能力[1-2]。?体设计

本系统使用微信公众号作为用户操作入口,通过公众号界面的菜单跳转或指令交互,使用HTML5开发响应式页面展现给用户,微信公众号和HTML5页面可以归为客户端;使用PHP语言、MYSQL数据库开发教务信息查询系统,部署在新浪SAE平台,这是服务端。客户端使用微信公众号入口具有极强的方便性和交互性,HTML5页面具有轻量级、表现力丰富的特点,服务端运行在SAE平台,保证了系统的稳定性和扩展性[3-5]。

(1)客户端。客户端使用微信公众平台提供交互界面,通过输入指令、跳转菜单与服务端完成交互。用户通过关注公众号进入服务窗口,输入学号完成绑定,输入相应指令发送到服务端,解析服务端返回消息展现给用户。

(2)服务端。使用PHP+MYSQL开发服务端教务信息查询系统,实现学号绑定、成绩查询、课表查询、考试安排查询等功能。教务系统运行在新浪云平台(SAE),通过接受指令、返回结果与客户端实现交互。指令交互的过程是:服务端根据接受的指令调用相应的功能模块,将结果封装成XML消息,返回给微信公众平台加以展示;菜单跳转则是通过微信内置的浏览器直接展示HTML5页面,由页面与后端业务逻辑模块交互。系统总体设计如图1所示。功能与流程设计

本系统通过微信公众号向用户提供学号绑定、课表查询、公选课查询、教务通知查询、成绩查询、考试安排查询等功能,用户关注公众号后,可以方便地在微信界面使用以上功能,达到随时随地随身使用教务信息查询系统的目的。系统功能结构设计如图2所示。

本系统主要为在校大学生方便及时查询教务信息服务,因此用户群是在校大学生。学生用户首先关注微信公众号,进入公众号界面,输入学号绑定,绑定成功后就可以使用课表查询、成绩查询等功能,点击相应的查询按钮,系统会根据学号自动返回相关信息。用户业务流程设计如图3所示。关键技术

4.1 微信公众平台接入

开发者接入微信公众平台,需要3步:

(1)填写服务器配置。登录微信公众平台官网后,在公众平台后台管理页面修改配置,填写服务器地址(URL)、Token和EncodingAESKey。其中,URL是开发者用来接收微信消息和事件的接口地址;Token可以任意填写,用作生成签名,该Token值会和接口URL中包含的Token进行比对,从而验证安全性;EncodingAESKey由开发者手动填写或随机生成,用作消息体加解密密钥。

(2)验证服务器地址的有效性。开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带4个参数:①Signature:微信加密签名,结合开发者填写的Token参数和请求中的Timestamp参数、Nonce参数;②Timestamp:时间戳;③Nonce:随机数;④Echostr:随机字符串。

开发者通过检验Signature对请求进行校验,若确认此次GET请求来自微信服务器,则原样返回Echostr参数内容,表示接入生效,否则接入失败。

检验Signature流程如下:①将Token、Timestamp、Nonce 3个参数进行字典序排序;②将3个参数字符串拼接成一个字符串进行sha1加密;③将加密后的字符串与Signature对比,通过则标识该请求来源于微信。

检验Signature的PHP示例代码如下:

private function checkSignature()

{

$signature=$_GET[“signature”];

$timestamp=$_GET[“timestamp”];

$nonce=$_GET[“nonce”];

$token=TOKEN;

$tmpArr=array($token,$timestamp,$nonce);

sort($tmpArr,SORT_STRING);

$tmpStr=implode($tmpArr);

$tmpStr=sha1($tmpStr);

if($tmpStr==$signature){

return true;

}else{

return false;

}

}

(3)依??接口文档实现业务逻辑。验证URL有效性成功后即可开发业务逻辑,用户每次向公众号发送消息或者点击自定义菜单,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,开发者就可以编写相应的业务逻辑进行响应,例如回复消息、返回页面等。

4.2 PHP操作MYSQL数据库

PHP内置了操作MYSQL数据库的函数,这些函数以mysql_开头,使用这些函数可以非常方便地存取数据库里的信息[6]。一般步骤为:

(1)建立与数据库服务器的连接。

$conn=mysql_connect('hostname','username','password');

参数:‘hostname’表示连接字符串,'username'和'password'分别表示连接MySQL服务器的用户名和密码。

返回值:如果连接成功,则函数返回一个MySQL连接标识,连接失败则返回false。

(2)选择要操作的数据库。

mysql_select_db(‘dbname’,$conn)

参数:‘dbname’是要操作的数据库名称,$conn是打开数据库服务器的返回结果。

(3)执行sql语句。

$rs=mysql_query(“要执行的SQL语句”)

参数:SQL语句可以是标准的select、insert、delete、update等语句。

返回值:如果SQL语句是查询指令select,成功则返回查询后的结果集,失败则返回false;如果SQL语句是insert、delete、update等操作指令,成功则返回true,失败则返回false。

(4)处理结果集。如果执行select查询语句,成功则返回结果集,接下来需要用mysql_fetch_array()函数从数组结果集中获取信息。语句如下:

$row=mysql_fetch_array($rs);

参数:$rs为执行select查询语句返回的结果集。

返回值:$row为从结果集取得一行返回的数组,可以用$row[‘字段名’]访问指定列的值;如果没有数据则返回false。

(5)关闭与数据库服务器的连接。

mysql_close()

如果不手动关闭数据库连接,PHP脚本在执行结束时也会自动关闭数据库连接。结语

本文阐述了综合使用新媒体微信平台作为信息展示端,使用云平台运行服务端,使用HTML5编写部分交互页面,开发服务于在校大学生的教务信息查询系统。本系统相对于传统的B/S系统具有明显的优点:使用微信公众平台作为系统客户端,充分利用移动通讯工具的便捷性,最快、最广、最精确地展示教务信息;使用云平台作为系统服务端,将系统应用部署在云端,扩展性、安全性大大提高。未来,以微信公众号加云平台这种“轻前端、重后端”的架构开发的信息系统会越来越多。

参考文献:

[1] 白浩,郝晶晶.微信公众平台在高校教育领域中的应用研究[J].中国教育信息化,2013(4):78-81.[2] 刘娟娟.基于微信公众平台的微课程在教学中的应用[J].中国轻工教育,2014(5):94-96.[3] 李松辉,侯志江.图书馆微信公众号服务平台的设计与开发[J].信息系统工程,2015(2):33-39.[4] 王军凤.教务信息系统的设计与开发[J].无线互联科技,2013(2):74-77.[5] 程方昭.教务信息管理系统的建设[J].福建广播电视大学学报,2006(3):36-40.[6] 赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J].计算机工程与设计,2007(4):933-938.(责任编辑:孙 娟)

下载校园无障碍考勤即微校通到校微信公众号推送系统word格式文档
下载校园无障碍考勤即微校通到校微信公众号推送系统.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐