使用 nodeJs 开发微信公众号(配置服务器)
流程如下:
1. 申请微信公众号:企业号、服务号、订阅号(前两个要钱)
2. 配置微信公众号后台

选择基本配置,获得 AppId 和 AppSecret ,点击服务器配置

URL:你服务器地址,不能是IP地址,而且域名必须指向80端口,没有固定域名的同志可以使用natapp,基于ngrok的域名映射工具
Token: 自己生成
EncodingAESKey: 点击随机生成
完成填写后点击提交,微信会向你填写的地址发送一个请求,然后你需要把他发送的 echoStr 返回,所以事先需要在自己服务器上写一段代码,如下:
我项目目录下

我把微信配置项放在config目录下ws.js文件中:
const wxConfig = {
appId: '******',
appSecret: '******',
token: '*****'
}
module.exports = wxConfig
每次微信服务器请求第三方服务器会携带 signature nonce timestamp 字段,在配置服务项时还会携带 echoStr 字段
我们可以通过将token(保存在配置项) nonce timestamp 排序,然后拼接,然后 sha1 加密后与 signature 比较,如果相等则改请求为微信服务器发送
代码:
var token = wxConfig.token
var signature = req.query.signature
var nonce = req.query.nonce
var timestamp = req.query.timestamp
var echostr = req.query.echostr
var str = [token, timestamp, nonce].sort().join('')
var sha = sha1(str)
if (sha === signature) {
res.send(echostr)
}else{
res.send('error')
}
微信服务器收到 echoStr 后会提示配置成功
使用 nodeJs 开发微信公众号(配置服务器)的更多相关文章
- NodeJs 开发微信公众号(五)真实环境部署
在测试环境下开发完成代表着你离正式上线的目标不远了.接下来本章就主要谈一谈把测试环境的公众号升级为正式的公众号. 服务器和域名 目前为止我们只是在自己的电脑上完成了测试环境.真实的线上环境当然需要自己 ...
- NodeJs 开发微信公众号(四)微信网页授权
微信的网页授权指的是在微信公众号中访问第三方网页时获取用户地理.个人等信息的权限.对于开发了自己的网页app应用时,获取个人的信息非常重要.上篇博客讲到了注册时可以获取用户的信息,很多人会问为什么还需 ...
- NodeJs 开发微信公众号(二)测试环境部署
由于卤煮本人是做前端开发的,所以在做公众号过程中基本上没有遇到前端问题,在这方面花的时间是最少的.加上用了mui框架(纯css界面)和自己积累的代码,很快地开发出了界面来.接着是后台开发.卤煮选的是n ...
- NodeJs 开发微信公众号(一)准备工作
前言 大概是一个月前,自己用业余时间做了一个微信公众号.微信开发,尤其是对后台不熟悉的人来说显得尤其困难.首先要克服的是后台语言(nodejs)的一些不熟悉困难,其次,也是最大的一点困难是在跟微信交互 ...
- Nodejs开发微信公众号中控服务
本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 本项目旨在为多个微信公众号 ...
- NodeJs 开发微信公众号(三)微信事件交互
微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成.比如说自定义菜单功能,必须通过发送post请求的方式生成.本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么 ...
- 使用 nodeJs 开发微信公众号(上传图片)
在给用户发送消息中涉及到的素材(图片.视频.音频.文章等)需要事先传到微信服务器,然后获得媒体id(media_id),然后把 media_id 传递给用户 上传分上传临时素材(只保存三天)和上传永久 ...
- 使用 nodeJs 开发微信公众号(获取access_token)
要使用微信提供的功能接口,就需要获取到access_token,这是开发公众号必不可少的一部 access_token有效期20分钟,建议保存起来,过期后在重新获取 获取流程如下: 我将微信相关的操作 ...
- 使用 nodeJs 开发微信公众号(设置自动回复消息)
微信向第三方服务器发送请求时会降 signature .timestamp. nonce . openid(用户标识),发送内容会以 xml 的形式附加在请求中 回复消息前提我们得拿到用户id , 用 ...
随机推荐
- 学习笔记DL005:线性相关、生成子空间,范数,特殊类型矩阵、向量
线性相关.生成子空间. 逆矩阵A⁽-1⁾存在,Ax=b 每个向量b恰好存在一个解.方程组,向量b某些值,可能不存在解,或者存在无限多个解.x.y是方程组的解,z=αx+(1-α),α取任意实数. A列 ...
- 前端小白第一次使用redux存取数据练习
在学习了redux基本教程后,课程参考如下网址:https://www.redux.org.cn/docs/introduction/CoreConcepts.html,开始着手练习 1.首先编写一个 ...
- git 分支管理记录
测试环境 :虚拟机(VMware Fusion Centos 6.5) 1.安装git环境 [root@localhost ~]# yum -y install git 2.检测git是否安装成功 [ ...
- 去除 chrome 上保存密码后的 input 框的屎黄色背景
网上找的设置 background-color,background-image 没用,后来找到这个方法测试有效: input:-webkit-autofill { transition: backg ...
- 对只转发结果集的无效操作:provious()
原因:结果集没有设置为可滚动 解决方法: 将stat = conn.createStatement(); 改为 stmt=conn.createStatement(ResultSet.TYPE_SCR ...
- 安装ns2.34,802.11p的各种包的时候遇到问题
安装教程:http://blog.sina.com.cn/s/blog_6735526a0102w1zs.html 802.11p补丁包:https://download.csdn.net/downl ...
- CentOS6/7快捷使用gcc5
Centos6/7自带的gcc为4.x版本,可通过devtoolset工具集安装gcc5.x版本 1. 添加yum源 1)CentOS6 [hhorak-devtoolset--rebuild-boo ...
- 像使用数据库一样使用xml
目录 xml简介 语言结构 tinyxml 下载tinyxml 应用实例 tinyxml的封装 封装源码 实际应用 xml简介 XML 没什么特别的.它仅仅是纯文本而已.有能力处理纯文本的软件都可以处 ...
- 台式机安装Linux操作系统无法识别网卡
在公司一台台式机上安装centos7系统,发现安装好之后,发现没有自动生成eth0网卡. 查看网卡相关信息: lspci|grep Eth 获取到网卡型号后,可以去官网下载对应的安装包进行编译安装即可 ...
- Python error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)解决方案
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it - 解决方案 python通过pi ...