nodejs 对接微信 express 对接微信

安装引用

npm install express
npm install body-parser
npm install express-xml-bodyparser
npm install axios

使用express框架对接微信 

var express = require('express');
var xmlparser = require('express-xml-bodyparser');
var crypto = require('crypto');
var path = require('path');
var bodyParser = require('body-parser');
var app = new express();

app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(xmlparser());

app.get('/', (req, res) => {
    res.end('hello world');
})
//对接验证 app.get(
'/wx', (req, res) => { if (!req.query.signature) { res.end('hello,this is handle view'); return; } const { signature, timestamp, nonce, echostr } = req.query; var token = "mydemo"; var array = [token, timestamp, nonce]; array.sort() var sha1 = crypto.createHash('sha1'); var str = array.toString().replace(/,/g, ''); var hashcode = sha1.update(str).digest('hex'); if (hashcode == signature) { res.end(echostr); } else { res.end(""); } });
//实现你问我答 文本消息回复 app.post(
'/wx', (req, res) => { console.log(req.body); const { tousername, fromusername, createtime, msgtype, content } = req.body.xml; var xml = `<xml> <ToUserName><![CDATA[${fromusername}]]></ToUserName>' <FromUserName><![CDATA[${tousername}]]></FromUserName>' <CreateTime><![CDATA[${createtime}]]></CreateTime>' <MsgType><![CDATA[${msgtype}]]></MsgType>' <Content><![CDATA[${content}]]></Content>' </xml>`; res.end(xml); }); app.listen(80, '0.0.0.0', () => { console.log('listen 80'); })

微信公众号 配置 http://ip或域名/wx

原文地址:https://www.cnblogs.com/liuxm2017/p/10174759.html