zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    内部排序一
    安全的文件访问方式
    Json序列化
    对进度条的通用封装实现
    关于'//'解答
    jquery中美元符号($)命名冲突
    linux 文件属性与权限
    【层次查询】Hierarchical Queries之亲兄弟间的排序(ORDER SIBLINGS BY)
    How to create a freehand tool
    C# 获取COM对象 ProgId ClsId
  • 原文地址:https://www.cnblogs.com/liuxm2017/p/10174759.html
Copyright © 2011-2022 走看看