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
nodejs 对接微信 express 对接微信的更多相关文章
- C#微信支付对接
c#版在pc端发起微信扫码支付 主要代码: /** * 生成直接支付url,支付url有效期为2小时,模式二 * @param productId 商品ID * @return 模式二URL */ ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 企业微信篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 微信篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- C#开发微信门户及应用(40)--使用微信JSAPI实现微信支付功能
在我前面的几篇博客,有介绍了微信支付.微信红包.企业付款等各种和支付相关的操作,不过上面都是基于微信普通API的封装,本篇随笔继续微信支付这一主题,继续介绍基于微信网页JSAPI的方式发起的微信支付功 ...
- 微信电脑版-微信for windows客户端发布
12月份微信Windows版客户端1.0 Alpha推出,昨天微信for windows 1.0客户端(测试版)发布更新,超过三亿人使用的聊天应用,现在登录Windows桌面.你可以在Windows上 ...
- 微信公众平台"微信连Wi-Fi"功能来了 线下微信增粉利器
微信连Wi-Fi功能在第三方开发者和服务商已经有出现了,但有些成本相对会高些.近日微信公众平台新添了一个功能插件“微信连Wi-Fi”,已有微信认证过的公众号即可申请开通.赶紧去布局这个线下微信增粉利器 ...
- (实用篇)php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中.内容有:微信摇一摇接口/微信多客服接口/微信支付接口/微信红包接口/微信卡券接口/微信小店接口/JSAPI <?php class ...
随机推荐
- TeXstudio设置中文和编码问题
1 菜单中文显示 2 针对内容中文乱码问题 永久 临时
- conda Pyhon版本切换
1.首先确保你的系统里已经安装了Conda,打开命令行窗口,执行命令:conda --version 2.查看你的系统当前已有的Python环境,执行命令:conda info --envs,从图中我 ...
- 安装twisted遇到的坑
在使用twisted框架的时候,我们需要知道他是干什么的? twisted支持很多种协议,包括传输层的TCP, UDP, TLS和引用层的HTTP和FTP等. twisted框架其主要发行版本是以p ...
- 转发(forward)和重定向(redirect)的区别?
1)forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所 ...
- 《Python3-标准库》讲解
一.string:文本常量和模板 函数:capwords()-------------------------------------------------- import string s = ...
- 泛型(三)模拟commons-dbutils
最近在复习泛型的知识,想起以前使用commons-dbutils的时候,觉得这个工具太厉害了.所以,试着自己瞎写看能不能模拟commons-dbutils的功能. 1.commons-dbutils的 ...
- UNIX环境--线程
一.线程的概念 1.线程在进程中是负责执行代码的一个单位,可以说线程是进程的一部分.一个进程中至少要有一个主线程,进程可以拥有多个线程. 2.线程和进程一样,线程会共享进程的一些信息.比如,代码段.全 ...
- hdu 1166 线段树 区间求和 +单点更新 CD模板
题目链接 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- android 文件保存到应用和sd卡中
<span style="font-size:18px;">1.权限添加 <uses-permission android:name="android. ...
- x-pack邮件报警功能
1):修改elasticsearch.yml xpack.notification.email.account: work: profile: standard email_defaults: ...