nodejs中微信公众号开发-接口配置和签名验证
来源:互联网 发布:淘宝 少女服饰 编辑:程序博客网 时间:2024/06/06 02:07
意外金喜的博客 : http://blog.csdn.net/zzwwjjdj1
-- 创建项目
nodejs微信开发,本文介绍的是在express中使用
express命令行创建项目 :点击这里,
创建项目 : weixin_express
-- 使用的模块
sha1 : 加密模块
安装 : npm install sha1 -save
-- 改造项目
--创建config文件夹
项目根目录下创建config文件夹,
在config文件夹下添加config.json文件,主要是appID,token等
这些基本参数在微信号个人中心有,复制过来就是了.token必须和配置接口的token一致
{"wechat" : {"appID": "wx2e8f977800a3c2b8","appSecret": "c99b4dde849ae0ae58e2026ce5f28f1a","token": "wxexpress","prefix": "https://api.weixin.qq.com/cgi-bin/","mpPrefix": "https://mp.weixin.qq.com/cgi-bin/"}}
-- 封装签名认证
项目根目录下创建common文件夹,
在common文件夹下添加utils.js文件
var utils = {};var sha1 = require('sha1');//检查微信签名认证中间件utils.sign = function (config){return function(req, res, next){config = config || {};var q = req.query; var token = config.wechat.token; var signature = q.signature; //微信加密签名var nonce = q.nonce; //随机数var timestamp = q.timestamp; //时间戳var echostr = q.echostr; //随机字符串/* 1)将token、timestamp、nonce三个参数进行字典序排序2)将三个参数字符串拼接成一个字符串进行sha1加密3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信*/var str = [token, timestamp, nonce].sort().join('');var sha = sha1(str);if (req.method == 'GET') {if (sha == signature) {res.send(echostr+'')}else{res.send('err');}}else if(req.method == 'POST'){if (sha != signature) {return;}next();}}};module.exports = utils;
--引入中间件
在app.js文件中引入utils.js和config.json,然后使用签名认证中间件
认证的代码已经完了,注意app.js中代码的顺序.
-- 接口配置
申请了一个微信测试账号
这个url就是你项目的url了.在我的项目中对应的是 http://localhost:3000/,通过QQ浏览器插件配置,
如何在本地进行微信公众号的开发和调试 : http://blog.csdn.net/zzwwjjdj1/article/details/52221493
-- 验证签名
点击提交后:
后台输出参数:
微信签名认证算是代码的第一步,迈出去了.后面接着坑.
项目结构:
这个过程就添加了2个文件,修改了app.js文件
意外金喜的博客 : http://blog.csdn.net/zzwwjjdj1
0 0
- nodejs中微信公众号开发-接口配置和签名验证
- 微信公众号开发-签名验证本地服务器方法
- nodejs微信公众号开发第二章:初建项目以及设置微信接口配置
- 微信公众号网页开发js配置服务端签名
- 微信公众号开发笔记(一)服务器配置和验证
- PHP 开发API接口签名验证
- PHP接口开发签名验证原理详解
- PHP 开发API接口签名验证(一)
- PHP 开发API接口签名验证
- nodejs中微信公众号开发-access_token获取与保存
- 微信公众号开发 配置服务器URL,验证Token
- 《Nodejs开发加密货币》之十九:签名和多重签名
- NodeJs开发微信公众号
- Nodejs 开发微信公众号
- nodejs微信公众号开发
- nodejs开发微信公众号支付
- nodejs开发微信公众号
- 微信公众帐号开发-接口配置
- 连续子序列最大和
- 小猫统计:进行数据审核,找出错误数据
- JSP生成简单的Excel文件
- hdu 1181——并查集可能是我学的最好的算法了。。。。
- 《Android5.1源码探究 —— ActivityManager(2):getMemoryClass()及getLargeMemoryClass()》
- nodejs中微信公众号开发-接口配置和签名验证
- android 学习笔记 设置Button圆角
- 实现cocos2d-x v3.x lua 绑定 简单c++ 流程记录
- nodejs常用命令,nondejs初学者
- Linux下 jdk1.8安装
- POJ2386 Lake Counting
- Cursor mCursor = db.rawQuery(sql,null);一直为空!!报错!!建议:勿急勿躁,一步一步重新执行,最终发觉问题
- 优先队列
- S.O.L.I.D五大原则之单一职责SRP