基于phpmysql的微信公众平台的接口开发_第1页
基于phpmysql的微信公众平台的接口开发_第2页
基于phpmysql的微信公众平台的接口开发_第3页
基于phpmysql的微信公众平台的接口开发_第4页
基于phpmysql的微信公众平台的接口开发_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全日制本科生毕业论文题 目: 基于php+mysql的微信公众平台的接口开发 学 院: 专业年级: 学生姓名: 学号: 指导教师: 职称: 2015 年 6月 6 日基于php+mysql 的微信公众平台的接口开发摘 要:此毕业设计是基于微信公众平台的微信墙,用php+mysql这两款开源软件结合微信公众平台提供的接口模式开发。主要功能是:用户在客户端操作,后台获取用户的个人信息以及发送的消息,并输出到首页滚动显示。关键词:php+mysql;微信公众平台;微信墙;微信认证订阅号Abstract:This graduation design is based on the WeChat public platform WeChat wall, with the php+mysql two open source software combined with WeChats public platform for the development of the interface mode. The main function is: the user in the client, the background to get the users personal information and send the message, and output to the home page scrolling display.Key words:Php+mysql;WeChat public platform;WeChat wall;WeChat certified subscriber number微信公众平台,简称WeChat。微信公众平台现已注册的公众账号大全的总数已超过1000万个,已成为微信推广的广告主数量就有3万个,最火的微信公众平台拥有千万级的粉丝1。放眼各大高校,学生对微信使用比对QQ的使用更多,抢红包,语音聊天,逛微信看文章,预定机票火车票等已成为我们生活中不可或缺的一部分,微信公众平台成为一个趋势走进我们的生活。只通过微信就能完成几个app才能做到的事。新生入学的迎新晚会上加入微信墙能加强新生在现场的互动。1 开发环境为了方便该功能网站的开发,使用了XAMPP环境集承包调试。XAMPP环境集承包是一个易于安装,且包含 Maria DB数据库、PHP脚本解析引擎和 Apache服务器,使用notepadd+编辑代码,使用谷歌浏览器查看代码的效果。本地调试完毕上传至阿里服务器,进行线上调试。1.1 环境要求Apache或者Nginx(IIS的不行)Php5.3 以上(php5.2微信端没回复)Mysql 开启curl和openssL关闭微信墙目录下open_basedir(否则无法获取到用户头像)1.2 XAMPP集成软件包XAMPP=Apache + MySQL + PHP + Perl,是一个完全免费,易于安装和使用Apache发行版,包含 Maria DB数据库、PHP脚本解析引擎, Apache服务器和Perl。支持Windows、Linux和OS X。安装包同时提供phpMyAdmin、Webalizer等搭建Web环境的常用工具,根据系统平台的不同,还提供ProFTPD、FileZilla FTP Server、OpenLDAP、SQLite、mod_perl等组件。2 课题分析2.1 开发流程开发流程如图2-1所示,先在官网注册微信公众平台,然后在自己的服务器放置签名文件用于对接,在进入微信官网修改开发者配置,当对接成功后第三方网站的操作也会影响到微信公众平台。申请微信公众号在第三方服务器部署签名文件在微信官网填写服务器配置配置数据库,创建数据表编辑微信墙端代码,实现引导用户操作获取用户信息,及其发送的信息首页输出展示信息微信墙功能测试图2-1 开发流程准备:申请微信号公众平台 注册地址:/注册流程按部就班即可,需要注意的是在选择类型(订阅号,服务号)时需慎重,这关系到该公众号的定位以及发展方向。注册成功后登陆,进入微信公众号中心,在左下角点击基本配置,如图 2-2。图2-2 进入开发者模式2.1.1 填写服务器配置登录微信公众平台官网后,在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥2。注意:先不要确认,因为这一步填写的token信息是没有被认证的,所以需要checksignature文件,另请注意,微信公众号接口必须以http:/或https:/开头,分别支持80端口和443端口,如图2-3所示。Signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。Timestamp:时间戳Nonce:随机数图2-3 开发者模式配置Echostr:随机字符串开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:(1)将token、timestamp、nonce三个参数进行字典序排序。(2)将三个参数字符串拼接成一个字符串进行sha1加密。(3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。2.1.2 编辑checksignature 签名函数文件编辑checksignature 签名函数文件,用于验证第三方网站提供的token,验证URL有效性成功后即接入生效,成为开发者。你可以在公众平台网站中申请微信认证,认证成功后,将获得更多接口权限3。成为开发者后,用户每次向公众号发送消息、或者产生自定义菜单、或产生微信支付订单等情况时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,开发者可以依据自身业务逻辑进行响应,如回复消息。private function checkSignature()$signature = $_GETsignature;$timestamp = $_GETtimestamp;$nonce = $_GETnonce; $token = TOKEN;/定义的token参数 $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr );if( $tmpStr = $signature )return true;elsereturn false;2.2 网站整体的架构下面是开发的结构逻辑图4 2-4 user-weichat-website工作流程第三方网站目录:Wall 根目录| | filescss js配置文件 | img 用户头像文件夹 | index.php 首页展示信息| db.php 数据库配置文件 | checksignature.php 验证签名文件 | functions.php 公共函数文件2.3 配置数据库文件在2.1过程已实现了checksignature文件,将该文件放到服务器根目录,保存为checksignature.php,微信官方会验证该签名文件,验证成功后微信官方会以GET方式传值5,那么我们就需要一个像盒子来存储这些信息,在这里我使用的图2-4 user-weichat-website工作流程是mysql数据库管理软件。建立一个db.php作为后续php文件连接数据库导入的公共配置文件6:responseText(收到了未知类型消息: . $this-getRequest(msgtype);2.4.4 首页输出展示信息从数据库获取用户的个人信息以及用户提交的文本信息,并输出到首页。导入数据库配置文件db.php 并连接数据库:$link = mysqli_connect(HOST,USER,PASS,DBNAME); if(!$link) die(数据库连接失败!原因:.mysqli_connect_error(); mysqli_set_charset($link,utf8); /设置编码连接成功后,定义sql查询语句,分页并limit 5条控制首页显示输出信息,并且只查找state为“1”的信息,代码见代码附录3-5 index.php/首页输出数据库信息到目前为止,该网站最开始设计的功能(对接微信公众平台,引导用户操作进入微信墙,获取用户个人信息,获取用户想要展示的文本信息,输出到大屏幕所需要的函数文件,访问数据库文件,配置文件,已经完成了,进入下一项:测试!3 功能测试在微信墙网站做完后,需要对该网站的每个功能进行测试。通过测试来确定每个功能是否完成了相应的效果,并对未达到理想效果的功能进行问题分析,从中找出问题所在并加以修改,修改后再测试直到达到正确结果为止。3.1 微信墙的测试微信端的测试是最直观的,当用户在指定微信公众号回复“微信墙测试”时,自动回复的内容是否成功的发送到该用户,数据库操作是否会正常执行,获取用户个人信息的方法是否出错,微信墙首页的运行是否达到预想中的效果。这些都需要实际操作才能看出效果!4 实际效果的展示实际效果分为五步:(1)进入微信墙。(2)发送第一条内容。(3)发送多条内容测试。(4)退出微信墙。(5)网站首页输出微信用户发送的内容。4.1 进入微信墙微信墙进入第一步测试,关注该公众号“帮帮BNG”,按着流程进入微信墙,如图4-1所示。当出现如4-1 所示界面,即表示已成功进入微信墙。4.2 发送第一条测试内容发送第一条测试内容,按着提示直接在输入框编辑你想要发送的信息。如图4-2 所示。当出现如4-2 所示界面,即表示第一条内容已成功发送。4.3 发送多条测试内容发送多条测试内容,继续在输入框编辑你想要发送的内容,如图6-3 所示。当出现如4-3 所示界面,即表示已成功发送多条内容。4.4 执行退出退出微信墙,如图4-4 所示。当出现如4-4 所示界面,即表示已成功退出微信墙。4.5 首页展示首页展示如图4-5 所示。当首页出现上下弹出的信息,并且能看到用户名与用户的头像。如4-5所示,即表示微信墙功能已实现!注意:当弹幕太多,会因为带宽的限制出现弹幕不能刷新的问题,所以当进行微信墙实际运用时,必须根据实际人数来购买相应的带宽以保持微信墙的顺利进行。第 18 页 (共 17 页)图4-1 进入微信墙图4-2 发送第一条内容图4-3 多条测试内容图4-4 退出图4-5 首页展示5 总结遇到的问题:(1)在数据库建表这一步出现了问题,每次自己认为正确的建表语句一执行就报错,回头检查,有少标点的,还有约束出现了冲突的,本来数据库操作是不难的,却耽搁了大半天时间,这说明对这方面知识疏忽了,通过这次毕业设计,加深了对mysql-mariadb这款开源软件的认识,操作也更加熟练。(2)页面中的sql语句,对某些函数运用不是很熟练如:mysqli_fetch_assoc ,mysqli_affected_rows,他们一个是遍历函数,一个是查询被影响的行数函数,对于函数,多运用几次就记住他们的作用以及相关性。(3)对javascript的陌生,本来之前是没怎么学javascript的,这次毕业设计会运用到少量的javascript,通过翻阅书籍,询问指导老师,学到了一些javascript的知识,我们只有一直学习才不会被淘汰!(4)图片处理函数,获取用户个人信息包含了用户的头像,对于图片处理函数不是很懂,查了很多资料,询问了导师。最后学会了给图片随机命名,并保存到数据库,会熟练运用fileupload函数。本次毕业设计实现了最开始想要实现的功能,建设一个微信墙。第一步:打通网站与微信官方的通道,第二步:用户关注,第三步:引导用户操作进入微信墙。第四步:输入内容测试。第五步:退出,第六步:首页展示。基本功能已实现,但还可以有更好的方案,这需要更长的时间进行完善。可以添加黑名单功能,抽奖功能,投票功能等。由于这次毕业设计重点放在了微信公众平台与第三方的介入和微信公众平台接口的学习与使用,没有编写网站的后台管理权,希望以后可以更加完善该网站的后台以及网站的前端的整体功能。参考文献:1 高洛峰. 细说php(第二版)M. 北京:电子工业出版社,2012.2 方倍工作室. 微信公众平台开发最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论