1.前言之前的微信开发都是依赖后台的。不过,有时候后台小伙伴们很忙。最近学习了node的基础知识,于是索性想着用node来做一遍。本教程的环境是linux系统centOs7系统。二、准备工作1、我用的server服务器是瓦工。目前的是19.9美元。网上有优惠券。相比之下并不贵,国外也免备案。如果你有兴趣,你可以购买。系统是centOs7。2.公众号mp.weixin.qq.com3.使用Xshell搭建服务连接服务器。1.安装node$sudoyum-yinstallnodejs2。安装express脚手架$npminstallexpress-generator-g3。创建项目需要自己放置源码$cd/home$mkdirdirnodeApp//进入目录$cdnodeApp//创建项目$expresswxApp$cdwxApp//安装项目需要的依赖包$npminstall此时脚手架创建项目成功,但是应用默认端口是3000,而微信配置服务器地址时,只允许80和443端口,所以这里我们把我们的项目改成80端口:3.2修改服务项目的端口有两种修改方式。以上截图是在自己电脑本地修改的最后把文件放到服务器上(比如ftp),引入服务器vi命令修改如下:$cdbin$viwww然后保存3.3安装nodemon(可跳过)因为我习惯了vue热加载,如果node服务发生变化,必须重启服务才能生效,这个nodemon插件相当于热加载,自动重启服务。//全局安装nodemon插件$npminstall-gnodemon//进入项目下的bin目录$cdbin//创建并写入nodemon.json配置文件$vinodemon.json下面是nodemon的内容。json配置文件:{“可重启”:“rs”,“忽略”:[“.git”,“.svn”,“node_modules/**/node_modules”],“verbose”:true,“execMap”:{“js":"node--harmony"},"watch":[],"env":{"NODE_ENV":"development"},"ext":"jsjson"}保存完成。(同样可以在本地编辑好放到服务器上)3.4运行项目//回到项目根目录/home/nodeApp/wxApp$cd..//运行项目$nodemonnpmstart如果是和图片一样,证明服务已经启动了。(注意:如果遇到80端口冲突,请先关闭你服务器80端口占用的其他服务,再启动项目。)在浏览器中输入你服务器的ip。如果你看到下图,就证明你的项目已经搭建成功!!!4.微信配置登录微信公众平台,找到基础配置---服务器配置:如上图,此时填写配置并提交,微信肯定会报错,因为我们自定义的token不是在服务器上设置。Setservertoken//installcrypto$npminstallcrypto用以下内容替换index.js的内容varexpress=require('express');varcrypto=require('crypto');varrouter=express.Router();vartoken="WeiChartToken";//这里是我们自定义的token,需要和微信配置里填写的一致!/*获取主页。*/router.get('/',function(req,res,next){varsignature=req.query.signature;vartimestamp=req.query.timestamp;varnonce=req.query.nonce;varechostr=req.query.echostr;/*加密/验证过程如下:*///1.将token、timestamp、nonce按字典顺序排序vararray=newArray(token,timestamp,nonce);array.sort();varstr=array.toString().replace(/,/g,"");//2.将三个参数字符串拼接成一个字符串进行sha1加密varsha1Code=crypto.createHash("sha1");varcode=sha1Code.update(str,'utf-8').digest("hex");//3.开发者获取的加密字符串可以与签名进行比对来识别请求来自微信if(code===signature){res.send(echostr)}else{res.send("error");}});module.exports=router;配置完成,然后再次进入公众号按图标确认配置。
