在上一篇中,我们讲解了如何申请微信公众号,公众平台开发的基本原理以及服务器环境的搭建。这一讲开始,我们正式进入微信公众号的开发。

1.   微信接口

我们前一篇已经讲了,微信平台(不管是订阅号还是服务号)和我们的网站进行交互时,都是通过微信平台开放给外部系统的接口调用来实现的,也就是说,粉丝向公众号发送一次交互(文字,图片,声音或者菜单点击都算交互)后,微信平台会向你配置的url所对应的网站发出调用请求,来执行你的网站的代码,在代码中你进行各种处理后返回一个处理结果。

你的网站具体使用什么语言来开发取决于你自己的爱好,不过我建议大家使用php来做,因为目前做web开发php是最方便的,当然你也可以用java写,没关系的,我们以php为例说明。

微信平台在配置url时会验证一下你对应的这个url的网站是否真实存在,是否是你自己的网站。验证的原理很简单,你首先填写一个Token(你不用管这个是什么,只要记住它其实就是一个字符串符号,用来生成一个代表你自己身份的签名),然后填写你的网站的url,点击提交,如下图。

平台就会向这个url所对应的网站发送一个GET请求,同时携带4个参数。参数参考图2的说明。如下图。

其中timestamp是一个时间戳。时间戳其实就是从 1970年 1月1日至当前时间的总秒数。你就数吧,从1970年 1月 1日到我们现在这个时刻一共流逝了多少秒那么这个时间戳就是多少。所以时间戳任何时刻都是不同的。Nonce和echostr都是平台产生的随机数。Signature也就是签名,它是经过如下计算得到的:

将当前时间戳(timestamp),nonce以及你输入的TOKEN按照字母顺序排序后拼接在一起形成一个字符串。例如: timestamp是345632,nonce是132a,TOKEN是123,那么我们先按照字母顺序排列,得到这样的顺序:123,132a,345632.然后拼接得到:123132a345632.最后经过SHA1加密运算得到签名Signature:E69E5E13D8B045923EF1BE38DF938F5621CA3004。SHA1是一个加密算法,细节这里就不讲了。这些参数一会都会通过查询参数的形式发送给我们网站的。

搭建php网站

为了能够接受这些参数我们需要一个自己的php网站。Ok,我们现在就开始搭建这样的一个网站。

1. 先下载WAMP集成安装套件,这个很简单,大家一路点击“下一步”,最后点击一下“完成”就可以了,我是直接安装在C盘根目录的,安装好了以后的目录结构 如下图. 安装完成后我们可以看到,我们需要的apache,mysql和php都已经安装好了,而且默认帮你安装了一个管理工具,非常方便。最重要的就是www这个目录,这个是就我们即将要创建的网站的根目录。

2. 进入www目录,新建一个index.php的文件,在里面只写入一行代码,如下图所示。

然后在浏览器里面输入localhost,如果出现上图的页面,说明我们的服务器环境是已经ok,我们就可以继续下一步了。

3.      接下来,我们开始代码处理。我们首先获取平台传过来的4个参数,

具体的代码见下面,里面已经有很详细的说明了哦。这里再说一下,为什么使用php,大家看到没有,用php 代码只有不到100行,而我之前用java实现过同样的功能,却花了500多行,这得益于php的很多函数以及帮我们做好了,我们可以直接使用。所以,php特别适合中小型网站的哦开发哦。大家也可以用其他语言换个方式实现一下试试。

这里再补充解释一下上面的代码:代码的处理过程是这样的,将传过来的时间戳timestamp,随机数nonce和你自己输入的TOKEN(你自己输入的,所以当然知道TOKEN是多少)排序,拼接,SHA1处理,最后得到一个签名。

因为我们得到这个签名的过程和平台处理的过程是一模一样的,所以我们得到的签名和平台发送给我们的签名Signature的值应该是一模一样的。

将得到的结果和传过来的签名Signature比较,如果相等,就返回echostr(echostr也是平台发给我们的参数哦)给平台,告诉平台我已经接受到了你的请求,而且这个请求在网络传输的过程中没有被篡改(因为签名相等)。这样验证就通过了,相当于和平台和我们的网站之间建立了一个可信的通信通道。

如果你看到平台显示下面的信息,说明验证通过了,你就可以正式开始你的微信开发了。

.2. 使用php开发微信服务器端

我们的微信商城其实就是一个web程序,只不过这个web程序的客户端不再是浏览器而是微信平台了,所以,任何支持web服务器端开发的语言都可以作为我们微信商城的开发语言,例如Java、php等。为什么这里我选择php呢,因为php是目前为止最适合web开发的语言,而且随着我们的深入,你会发现php在web开发上的强大之处,很多java要很多行代码才能够实现的功能,php只要一句代码就可以很好的实现了。所以,我们选择php作为我们的示例开发语言。

那么,大家在使用php开发时,我相信一提到调试,很多人还是会觉得很头疼,特别是新手更加是这样。我见过很多人抱怨php调试非常不方便,只能使用一些echo,print等输出语句输出变量值来进行调试,这样的确是非常麻烦的,因为这些输出语句无法设置断点。所以,我这里首先帮大家解决php断点调试的问题,因为没有这个断点调试的“利器”,以后的开发中出现问题,你想解决是很痛苦的。

说起php的断点调试,我相信很多同学首先想到的就是zend studio+zend debugger,没错,你可以这么做,但是,这么做就意味着你需要手动配置很多东西,而且还不一样能保证停留在断点处。这里,我就不饶湾子了,我教大家一个很方便的工具,直接安装一下就可以原来调试php了。

这个工具就是XAMPP+PhpEclipse的组合,其中XAMPP是一个集成安装包,里面包括了:Apache, MySQL、PHP和Perl。XAMPP其中的A代表Apache,M代表MySQL,第一个P代表PHP,第2个P代表Perl.这个工具自身携带了php调试功能xdbug,大家安装以后几乎不需要特意配置就可以用来调试php了。

下面请跟着我一步步来操作:

2.     解压该压缩包,并双击    xampp-win32-1.8.0-VC9-installer.exe

3.       一路点Next,在选择文件安装位置时,选择安装在C:\盘根目录。

4.  等待安装

5. 完成。

6.     完成后会自动打开控制面板。其中1处是启动各种服务的按钮,2 是配置各种服务的按钮,3是查看各种服务的日志的按钮。

7.    点击Apache,MySql   的Start按钮,启动apache web服务器和mysql 数据库服务器,如下图,能看到Pid和ports的下方出现了 值 时表示服务启动成功 。

如果出现启动报错时,检查一下是否 相关的端口被占用了,修改配置文件里面的相关端口的配置后再重新启动试试。

下载并解压phpeclipse,点击运行,你会发现聪明的phpeclipse已经自动发现了xampp,并且已经自动帮你配置好了。

接下来很重要的一步,我们将创建一个php网站项目,并且验证一下我们的xampp是否能对我们的php网站进行调试。只有我们的调试能正常进行,以后的课程中我才能一步步的帮大家分析微信平台和我们的网站的交互过程的细节,大家才能真正明白原理,然后大家在实际中遇到问题时也可以使用调试来分析解决。

1.    首先,新建一个php项目 。增加一个php文件,里面随便加一些最简单的代码。并设置几个断点。这里注意:设置断点时一定不要双击来设置,一定要通过在左侧右键,然后在弹出的右键菜单里面选择:“Toggle Xdebug BreakPoint”来设置。这是因为双击设置的是java的断点,而我们是需要对php设置断点,必须通过右键的方式来设置,这样设置的才是php的断点,这样的断点XDebug才可以识别。否则,你很容易会出现莫名其妙的无法在断点处停住的问题。

2.   接下来,打开我们的xampp的安装目录,我的是:C:\xampp\php,用记事本打开里面的php.ini配置文件。我们要把里面的最后一部分关于xdebug的配置前的注释打开。修改好之后的截图如下:

这样,我们就打开了xampp的xdebug调试功能。如果你不是很肯定是否已经打开了该调试功能,可以自己创建任意一个php项目,在里面写上一个文件,在该文件里面写上:phpinfo();然后执行以下,看看是否有如下输出:

3.      这样,我们已经完成了服务器端的配置。接下来需要在我们的phpeclipse里面设置一下,让我们的ide能够和我们服务器端的xdebug通信。跟我来。打开windows-prefrences下面的phpeclipse,按照如下图所示 检查是否配置正确。

4.       接下来就可以测试一下我们的调试功能是否能正常调试了。一起来。在file.php上右击,选择debug as->debugconfiguration

5.   配置 完保存后,以后调试时,只需要在工具栏的那个debug图标下选择我们刚才的配置就可以进行调试了,如下图。

注意后面的参数:XDEBUG_SESSION_START=testID这里的testID 就是我们之前在debug配置里面设置的标识字符串。如图。

7. 最后,停在断点的效果如下图所示。

有了断点单步调试的功能,接下来我们不管做什么php网站,都方便很多了。在下一讲,我将结合php单步调试给大家深入分析微信商城开发的原理。

后台php搭建服务器_php搭建微信后台服务器相关推荐

  1. 微信企业支付 服务器根证书,微信支付服务器证书根ca证书有什么用

    随着现如今网络的不断发展,我们的生活跟网络密不可分,现在到处充斥着手机消费,只要你手机上有微信.支付宝不管到哪里都可以买你想买的东西,钱包已经在家里闲置多时.手机支付给我们的生活带来便利的同时也会伴随 ...

  2. php模板怎么导入服务器_php项目怎么放到服务器

    服务器PHP环境的搭建以及注意事项: 1.Apache2的安装:sudo apt-get install apache2 运行完成后在打开游览器输入IP地址,若出现欢迎界面即安装成功 注意:网站根目录 ...

  3. 微信团队分享:微信后台在海量并发请求下是如何做到不崩溃的

    本文引用了文章"月活 12.8 亿的微信是如何防止崩溃的?"和论文"Overload Control for Scaling WeChat Microservices&q ...

  4. 新手搭建网页web项目:包括服务器搭建、后台、前端、交互

    我本身是学C++的,突然要写一个java项目,顿时感觉无从下手,首先找度娘,可是查了好多,都没有全篇搭建过程,走了第一步就不知道怎么走下一步了,现在分享我的搭建过程,供互相参考学习,有更好的方案欢迎提 ...

  5. 后台服务器的搭建(阿里云)

    一.购买服务器 登陆服务器官网,购买云服务器(双十一优惠力度很大) 如果你是一名在校大学生,那么学生认证之后也购买轻量级服务器(一百多一年),这里作为小程序的后台处理服务器足够了. 轻量级服务器的方便 ...

  6. thinkphp 微信服务器验证代码_基于ThinkPHP5微信后台管理平台

    DIY分享秀 2019-10-08 22:28:57 ThinkAdmin V5 是一个基于 ThinkPHP 5.1 开发的后台管理系统. 我们致力于二次开发底层框架,提供完整的组件及API,基于此 ...

  7. filezilla 设置服务器_java项目部署到linux服务器,微信小程序后台springboot项目部署到腾讯云服务器(图文详解)...

    前面给大家讲了一个点餐系统的开发,包括java点餐后台和微信点餐小程序.可是都是教大家如何在本地把项目跑起来.今天就来教大家如何把这个点餐系统部署到服务器,实现商用. 传送门 点餐系统的开发,java ...

  8. 基于java的微信公众平台开发(一)--账号申请与服务器的搭建

    2019独角兽企业重金招聘Python工程师标准>>> 微信公众号开发文档:https://mp.weixin.qq.com/wiki 微信公众平台接口调试工具:https://mp ...

  9. ngro_k服务器搭建(本地电脑与微信交互)

    ​ ngrok 是一个反向代理的开源软件,至于为什么要使用ngrok,百度百科这样说: ​ 最近在学微信公众号开发,开发过程需要与微信的服务端交互,直接拿自己的电脑当然是不行的,因为我们的电脑连接的是 ...

最新文章

  1. xp系统下访问的两个组策略设置
  2. Leetcode 206. 反转链表 解题思路及C++实现
  3. 要启用实时(jit)调试 该应用计算机,解决%_启用实时(JIT)调试+编译应用程序时还必须启用方法歩骤?谁有最终解决方案?...
  4. totolink 异地组网
  5. c++ 三维数组 初始化_013 JAVA 多维数组及数组的拷贝、冒泡排序、二分法查找...
  6. Atitit. 最佳实践 QA----降低cpu占有率--cpu占用太高怎么办
  7. 译文|LogDevice 与 Apache Pulsar 之间的对比
  8. sap批量创建盘点凭证以及盘点凭证过账
  9. Android-SEAndroid权限问题指南
  10. 小熊学Java第六天
  11. QT界面优化---反走样
  12. 布道微服务_18服务配置中心设计方案
  13. 莫烦Python教程之Pandas教程
  14. 基于CuteFTP的客户端定时备份说明
  15. Ubuntu18 ROS运行报错exit code -11
  16. YOLOV7详细解读(一)网络架构解读
  17. hive-jdbc 的大坑
  18. 大数据Hive(一):​​​​​​​Hive基本概念
  19. 现实中如何评判路遥《人生》中的高加林?
  20. 温度压力测试软件什么好,鲁大师温度压力测试多少度正常?鲁大师压力测试靠谱吗?...

热门文章

  1. Scrapy 入门笔记(4) --- 使用 Pipeline 保存数据
  2. 「专升本信息技术」计算机基础知识单选题集 (12)
  3. 找项目合作、异业合作网站有哪些?
  4. 漫画 | Code Review的巅峰
  5. 计算机二级教程虎课网,计算机二级Word篇-实操真题详解11
  6. SpringCloud源码探析(六)-消息队列RabbitMQ
  7. 学习爬虫之Scrapy框架学习(六)--1.直接使用scrapy;使用scrapy管道;使用scrapy的媒体管道类进行猫咪图片存储。媒体管道类学习。自建媒体管道类存储图片
  8. 有c语言基础学python要多久-C语言是学python的基础吗?
  9. 高通平台Performance机制学习总结
  10. 如何解决手机耳机插入电脑声音不清晰/很杂