公众号开发基础

2020-02-15  本文已影响0人  五四青年_4e7d

公众号分类:

 订阅号(新闻 资讯推送)   服务号(服务交互)    企业号 

公众号开发模式:

开发模式
编辑模式(微信公众后台提供的,只需要操作它的后台就可以)

如何切换为开发模式:


image.png

此时会显示token验证失败(需要创建服务端代码接收):


image.png
const express = require('express')
const app = express()

// app.use(express.static('./dist'))
app.get("/",function(req,res){
    res.send(req.query.echostr)
})

app.listen(8888,()=>{
    console.log('8888')
})

启动之后再次提交,成功
注:当开始开发模式之后“功能选项”已经没用了


image.png

下载包转化xml2js内容:

 cnpm install xml2js -S

简单的实现自定义回复内容:

const express = require('express')

//引入xml2js
var xml2js = require('xml2js');

//创建js对象:

var parser = new xml2js.Parser({explicitArray:false})

var builder = new xml2js.Builder({rootName:"xml",cdata:true,headless:true})

const app = express()

// app.use(express.static('./dist'))
app.get("/",function(req,res){
    res.send(req.query.echostr)
})


//添加post的路由,处理微信服务器转发的用户消息
app.post("/",function(req,res){
    console.log("用户发消息了")
    //1.获取post请求的内容
    var bufferList = []
    req.on('data',function(chunk){
        bufferList.push(chunk)
    })

    req.on('end',function(){
        var result = Buffer.concat(bufferList)
        //将读取的微信服务器消息使用xml2js转化为js对象
        parser.parseString(result.toString(),function(err,result){
              var msg = ""
              if(result.xml.MsgType == 'text'){
              switch(result.xml.Content){
                  case "1":
                  msg = "你好欢迎使用汉语";
                  break;
                  case "2":
                  msg = "你好欢迎使用英语";
                  break;
                  case "3":
                  msg = "你好欢迎使用法语";
                  break;
                  default:
                  msg = '请选择查询的语言:1.汉语 2.英语 3法语'

              }
            }

            var returnMsg = {
                ToUserName: result.xml.FromUserName,
                FromUserName:result.xml.ToUserName,
                CreateTime: +new Date(),
                MsgType:"text",
                Content:msg
            }

            res.send(builder.buildObject(returnMsg))

        })

    })
})
app.listen(8888,()=>{
    console.log('8888')
})
上一篇 下一篇

猜你喜欢

热点阅读