博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js+Koa开发微信公众号个人笔记(一)准备工作
阅读量:6508 次
发布时间:2019-06-24

本文共 1856 字,大约阅读时间需要 6 分钟。

本人也是在学习过程中,所以文章只作为学习笔记,如果能帮到你,那就更好啦~当然也难免会有错误,请不吝指出~

一、准备工作

1、本人学习教程:慕课网Scott老师的《Node.js七天搞定微信公众号》 ,但是有点小贵,经济条件允许的话可以支持一下。

2、文档:微信开发官方文档,必备。

3、微信开发测试号:测试公众号,必备。

4、云服务器:本人使用的是阿里云ECS,我是不建议使用ngrok这类的工具,太麻烦了,有个云服务器后一劳永逸!想弄的话可以看一下我以前的一篇文章

5、域名:有了服务器和外网IP后,没有域名好像也可以进行,我是买了个域名并进行了备案,备案耗时较长,我是在云网买的,建议买之前看看域名在国内能不能备案。

6、开发工具:mac + chrome + sublime + 手机,当然都不是必须的。sublime使用sftp插件向云服务同步代码,很方便。

二、框架选择

这里使用了Node.js的Koa框架的1.2版本,Node版本为7.6.

至于为什么Koa2都有了还要用Koa1.2,当然是跟着教程来的,为了减小入门成本,所以选择了与教程一致的版本。_(:з」∠)_

三、目录结构

这里目录的生成使用了koa-generator快速生成。

四、接入微信服务器

首先进入测试号页面,如下图

其中接口配置信息需要填写你的服务器URL,Token是自己填写的验证信息,内容随意。在提交之前,需要在服务器端进行配置。说白了,这个过程就是向微信证明“你(填写的服务器地址)是你”。

五、配置服务器,完成接入

在此之前,必须阅读微信开发文档,了解接入过程

 

接下来直接上代码:

首先使用koa-generator或者生成项目目录,之后使用npm install 安装依赖。

在routes下的index中进行如下修改:

var router = require('koa-router')();var index_middleware = require('../wechat/index_middleware');var config = require('../wechat/config');router.get('/', index_middleware.get(config.wechat));module.exports = router;

接下来实现index_middleware和config。

wechat/config.js:

module.exports = {    wechat: {        appID: 'xxxxxx',        appSecret: 'xxxxxxxxxxxxxxx',        token: 'xxxxxxx'    }};

这里面的信息根据你自己的测试号进行填写。

wechat/index_middleware.js:

var sha1 = require('sha1');exports.get = function(opts) {    return function *(next) {        var token = opts.token;        var signature = this.query.signature;        var nonce = this.query.nonce;        var timestamp = this.query.timestamp;        var echostr = this.query.echostr;        var str = [token, timestamp, nonce].sort().join('');        var sha = sha1(str);        if (sha === signature) {            this.body = echostr + '';        }    };};

完成接入逻辑后,需要npm install sha1 --save 安装sha1加密模块。

建议安装npm install supervisor -g,之后supervisor bin/www启动服务器并监听变化自动重启服务器,这样可以不用每次改动后手动重启服务器。

完成以上步骤后,回到步骤四,对填写的URL进行验证,这时,无意外的话,会出现验证成功,至此该服务器可以作为微信开发服务器了。

 

转载地址:http://ydbfo.baihongyu.com/

你可能感兴趣的文章
1.登录mysql数据库_MySQL学习笔记1:安装和登录(多种方法)
查看>>
mysql administrator 外键_在MySQL中使用外键
查看>>
mysql数据库存储 web界面操作_详解前端HTML5几种存储方式的总结
查看>>
mysql设置输出格式_rsyslog 配置mysql输出格式
查看>>
phpadmin管理mysql_安装phpMyAdmin来管理Mysql数据库
查看>>
mysql id能修改吗_MySQL中,当 update 修改数据与原数据相同时会再次执行吗?
查看>>
sqlite 迁移到 mysql_SQLITE 迁移到 MYSQL
查看>>
vue 断开正在发送的请求_Vue中监听窗口关闭事件并在窗口关闭前发送请求
查看>>
myclips连接mysql_使用my exclipse对数据库进行操作(1)
查看>>
mysql 设置允许工具连接_用数据库工具连接mysql出现不允许连接的解决办法
查看>>
MySQL聚集索引使用数字_Mysql聚集索引的使用
查看>>
selected 如何给tr选中_JS 动态设置选中行的CSS
查看>>
mysql.sys用户权限_Oracle中sys和system用户权限的区别
查看>>
mysql数据恢复时显示多线程恢复_MySQL多线程备份恢复工具mydumper,myloder
查看>>
store下拉框同步_通用下拉框实现&带级联
查看>>
小球从100米高空落下python求弹多少次、经过多少米_递归题:话说一个小球从100米空中落下,每次反弹一半高度,请问第12次反弹的高度是多少,小球总共经过多少米?...
查看>>
java中gc是什么_Java中GC的工作原理
查看>>
java下载服务器端文件_java客户端怎么从服务器下载文件
查看>>
java添加日志文件_JAVA添加日志文件 - osc_ug2wy0bi的个人空间 - OSCHINA - 中文开源技术交流社区...
查看>>
c语言和java的堆和栈的区别_C语言中堆和栈的区别
查看>>