安装引用

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

最新文章

  1. 移动Web之响应式布局的探讨
  2. Samba 4 Domain Controller on Ubuntu 14.04 LTS
  3. 20145212 《Java程序设计》第9周学习总结
  4. DotNet 资源大全中文版,内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等
  5. Maven进价:Maven构建错误汇总
  6. robotframework笔记25
  7. boost------bind的使用(Boost程序库完全开发指南)读书笔记
  8. Quartz中时间表达式的设置-----corn表达式
  9. node.js + mongodb
  10. IL代码完结篇
  11. 基于python的互联网软件测试开发(自动化测试)-全集合
  12. Android缩放动画
  13. 基于vue.js的简单用户管理
  14. CF451E Devu and Flowers
  15. 【SparkStreaming学习之一】 SparkStreaming初识
  16. Multiple Server Query Execution报The result set could not be merged..
  17. 解决 Bash On Windows 下载慢或无法下载的问题
  18. ASP.NET MVC4学习笔记
  19. 动态规划-Race Car
  20. java 加载数据库驱动

热门文章

  1. 第六篇:Scrapy框架
  2. 对items函数的理解
  3. java——SimpleDateFormat与DateTimeFormatter
  4. shell练习--PAT题目1005:继续(3n+1)猜想(全绿失败喜加一)
  5. shiro框架学习-5-自定义Realm
  6. HDU 6651 Final Exam
  7. java语言对比,jvm,垃圾回收
  8. android intent调用系统camera
  9. 实现Runable接口
  10. spring boot + mybatis + layui + shiro后台权限管理系统