@版权声明:本文为博主原创文章,未经博主允许不得转载https://blog.csdn.net/qq_40758535/article/details/89606716

php虚拟主机搭建微信公众号服务器

最近在搞一个领取淘宝优惠券的公众号,使用的是php+mysql+虚拟主机;(主要是服务器续费太贵了,学生党支付不起,于是去自学了几天php)
废话不多说了,上代码:

1.与微信服务器进行对接验证(具体验证方法,请看微信开发官方文档)

//wx,php//验证1public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){echo $echoStr;exit;}}//验证2private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token =TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}
以上代码写在wx.php文件,这是开发入口文件

接下来就是填写URL了,点击提交后微信服务器会向你所填的url,发送一个GET请求,验证通过后即可成为开发者号

2.编写主要业务逻辑代码
微信消息有文本,图片,语音,视频等多种消息类型,目前只写了文本消息处理,其他消息一律回复文本消息

//wx.php//回复用户消息public function responseMsg(){@$postStr = file_get_contents ( 'php://input', 'r' );if (!Empty($postStr)){$get_xmlElement_obj=new getXMLContents($postStr);$ElementsList=$get_xmlElement_obj->getElements(); //返回一个数组.类似json$type=$ElementsList['type'];//判断消息类型switch ($type){case "event": //event是微信事件,这里写的是关注事件$event_obj=new eventForSubscribe($ElementsList);$event_obj->getreply();echo $event_obj->SendSubscribe();break;case 'text':$reply_text_obj=new replyText($ElementsList);$reply_text_obj->getreply();echo $reply_text_obj->SendText();//向微信服务器发送数据包break;case 'image':$reply_img_obj=new replyImage($ElementsList);$reply_img_obj->getreply();echo $reply_img_obj->SendImg();break;case 'voice':$reply_voice_obj=new replyVoice($ElementsList);$reply_voice_obj->getreply();echo $reply_voice_obj->SendVoice();break;case 'video':$reply_video_obj=new replyVideo($ElementsList);$reply_video_obj->getreply();echo $reply_video_obj->SendVideo();break;case 'location':$reply_location_obj=new replylocation($ElementsList);$reply_location_obj->getreply();echo $reply_location_obj->SendLocation();break;case 'link':$reply_link_obj=new replylink($ElementsList);$reply_link_obj->getreply();echo $reply_link_obj->SendLink();break;}}}

这是文本消息处理方法

public function getreply(){switch ($this->text){case '你好':$this->contentStr ='你也好啊';//echo $this->SendText($fromUsername, $toUsername, $time, $contentStr);break;case '你是谁':$this->contentStr='你好,我是领券机器人,小二很高兴为您服务!!!';break;case '你叫什么名字':$this->contentStr='你好,我是领券机器人,小二很高兴为您服务!!!';break;case '我没钱了':$this->contentStr='没钱了,就要努力赚钱哦!!!';break;case '保存多久':$this->contentStr=HOW;break;case '会保存多久':$this->contentStr=HOW;break;case '要保存多久':$this->contentStr=HOW;break;case '可以保存多久':$this->contentStr=HOW;break;case '多久':$this->contentStr=HOW;break;case '帮助':$this->contentStr=HELP;break;case 'help':$this->contentStr=HELP;break;case '怎么玩的':$this->contentStr=HELP;break;case "1":$this->contentStr="该功能尚在开发测试中,敬请关注";break;case "2":$this->contentStr="该功能尚在开发测试中,敬请关注";break;case "3":$this->contentStr="该功能尚在开发测试中,敬请关注";break;default:$t=strstr($this->text,"¥");$h=strstr($this->text,"https://");if ($t||$h){  //判断收到的消息是否包含口令或者链接$link_arr=$this->check();if ($link_arr['tkl']!="0"){$this->OnTKL($link_arr);  //通过口令查询}elseif ($link_arr['url']!="0"){$this->OnURL($link_arr);  //通过url获取查询}}else{$this->contentStr='"O__O" 呆滞的眼神~~~!!';}}}public function OnTKL($link_arr){if (Empty($this->contentStr)){//开始查找优惠券,判断口令格式$coupons=new TaoBaoCoupons();$tkl_contents=$coupons->decodeTKL($link_arr); //根据淘口令获取goods_id$this->contentStr=$coupons->getcoupons($tkl_contents);  //查询实现}}

getcoupons方法就是调用各接口的处理,又长又臭,就不献丑赘述了具体可以看官方开发文档)
拿到券后将他存到数据库中,这样就不用频繁地发起网络请求,浪费资源了.上面放了个根据淘口令获取数据方法,URL类似,就不赘述了

写完业务逻辑后,接下来是用FTP工具将代码上传到虚拟主机上,下面是我买的虚拟主机目录,需要将代码放到web目录方可访问,我们来一层层地看


jdbc文件夹放数据库逻辑代码,查券代码放在taobao文件夹里,admin管理员登陆网页进行数据库信息查看的网页

最后.(这里回复的消息是文本信息,并没有制作h5网页,本来是想做的)

蓝色字体是一个超链接,链接到外网(也是h5的a标签)

微信开发完成!!!

第一次写博客文章,写的有点简陋,还望包涵

欢迎各位大佬来吐槽
另外打个广告:下图是我开发的公众号,欢迎前来体验

php虚拟主机搭建微信公众号服务器相关推荐

  1. 虚拟主机搭建微信公众号服务器

    一.前言 搭建微信公众号服务器的方式不只一种,可以用java等其他语言或是其他云空间来搭建服务器,这里总结的是用虚拟主机(主机公园中的虚拟主机)搭建微信公众号服务器的大概思路.不管用什么方式,配置微信 ...

  2. 虚拟主机搭建微信公众号服务器,建web服务器同时如何搭建虚拟主机?方法有几种?...

    所说的虚拟主机就是在一台服务器里运作几个网站,提供WEB.Mail.FTP等服务.那么在搭建wed服务器的同时,那么如何在[url=http://www.iisp.com/ztview/F_qgc5. ...

  3. 如何用阿里云服务器搭建微信公众号机器人?

    我们经常在一些公众号里回复信息,微信公众号都会自动回复信息,区别于微信平台的自动回复,有的公众号上面的自动回复,则更像是一个机器人客服.下面小编就教大家如何搭建微信公众号机器人. 所需材料: 微信公众 ...

  4. 华为云服务器如何搭建微信公众号后台-收发文本信息?

    概述 在本教程中,您将学会使用弹性云服务器(以下简称 ECS)搭建微信公众号处理后台,使用Python语言编写对应的微信消息处理逻辑代码,接收从微信服务端转发过来的消息,并返回处理结果给最终用户,如图 ...

  5. [python]用flask框架搭建微信公众号的后台

    用flask框架搭建微信公众号的后台 最近用python写了点爬虫,为了要让爬取的数据能够随时显示在我眼前,并实时根据我的指令返回数据.于是采用微信公众号做这个显示窗口,既能发送指令也能显示简单的相关 ...

  6. SpringBoot搭建微信公众号后台(一):消息接收与响应

    关注作者,更多动态实时掌握,微信公众号:隔壁的程序员 上一篇我们经过接口验证,已经可以与微信的服务器进行通信,错过的可以通过下面链接来进行回顾,这一篇就来实现一个基本的消息接收与响应. SpringB ...

  7. 阿里云+python+flask+ngnix零基础从零开始搭建微信公众号进行后台AI开发全套教程

    目录 一.微信公众号开发基础 1.1 与公众号的消息会话 1.2 与公众号内的网页交互 1.2 搭建开发者环境 1.2.1 配置nginx环境 1.2.2 云服务器与微信服务器建立连接 1.2.2.1 ...

  8. 手把手教大家搭建微信公众号查题功能

    手把手教大家搭建微信公众号查题功能 本平台优点: 多题库查题.独立后台.响应速度快.全网平台可查.功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 题库:题库后台(点击跳转) ...

  9. 关于微信公众号服务器设置token的问题

    关于微信公众号服务器设置token的问题 http://blog.csdn.net/shb2058/article/details/77247602

最新文章

  1. 运维工程师的职责和前景
  2. Datahwhale第三期集训团队成员
  3. python从网上获取数据失败怎么解决_求助:scrapy爬取数据失败,反复调试都不成功...
  4. 给表增加字段 本地测试正常 上传到服务器不正常
  5. 【Paper】2015_异构无人机群鲁棒一致性协议设计_孙长银
  6. 如何屏蔽PHP浏览器头信息X-Powered-By
  7. Linux下Apache自动监测重启脚本
  8. 借助 SAP 电商云 Spartacus UI 提供的 Schematics 辅助您的前端项目升级
  9. php foreach 符号,关于php:php-foreach循环中变量之前的符号
  10. AttributeError: module 're' has no attribute 'sub'
  11. vue element container布局
  12. 设置 cell点击 背景色
  13. python模拟按键directx,Python3在DirectX游戏中移动鼠标
  14. macos 设置内外网同时访问
  15. pngquant failed to build, make sure that libpng-dev is installed
  16. 如何用GoldWave中文版提取伴奏?
  17. 计算机毕业设计之java+springboot基于vue的地方废物回收机构管理系统
  18. cocos2d AABB碰撞检测
  19. 游戏开发九宫格战斗架构解析具体解释
  20. Linux下查找结构体定义的位置

热门文章

  1. 【并行计算-CUDA开发】GPU 的硬体架构
  2. 《模拟电子技术基础》课程笔记(六)——场效应管
  3. 构建ubuntu下的JXTA-C开发环境
  4. Compute Shader次世代优化方案
  5. Linux——文件或目录的权限管理、网络管理、进程管理、服务管理的相关命令
  6. 信息学奥赛一本通1278:复制书稿(evd)
  7. Mevoco 1.6 发布:支持在线克隆云主机的私有云
  8. Docker网络原则入门:EXPOSE,-p,-P,-link
  9. [转帖]老狼:你知道哪些关于 Windows 10 的骚操作?
  10. 有没有测试女生暗恋的软件,教你一个小技巧就可以测试女生是否喜欢你!