Nodejs express接入微信JS-SDK, 微信好友分享,微信朋友圈分享,消息回复备忘

liren123.cn

1.公众号后台设置

先拿测试号测试

微信公众号后台---开发者工具----公众平台测试账号

测试账号随便玩,不影响主体账号

上图红框,每个都有用,先拿appID,appsecret

URL填写自己服务器后台的接口, token自定义,后面有用,域名绑定自己的域名

注意,要关注这个测试号才可以调试消息接收


2.服务器后台设置

index.js文件(有些是在app.js,这个看自己情况,我这个启用了路由)

router.get('/wxJssdk', (req, res) => {

let wx = req.query

let token = 'wxexpress'    //这里跟微信公众号后台设置token保持一致

let timestamp = wx.timestamp

let nonce = wx.nonce

// 1)将token、timestamp、nonce三个参数进行字典序排序

let list = [token, timestamp, nonce].sort()

// 2)将三个参数字符串拼接成一个字符串进行sha1加密

let str = list.join('')

let result = sha1(str)

// 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

if (result === wx.signature) {

  res.send(wx.echostr) // 返回微信传来的echostr,表示校验成功,此处不能返回其它

} else {

  res.send(false)

}

});

index.js文件 以下这部分拿access_token,jsapi_ticket 按开放文档要求生成签名

router.post('/getJssdk', (req, res) => {

const grant_type = 'client_credential'

const appid = '填你的appid ' //在上图测试号配置界面

const secret = '填你的secret '  //在上图测试号配置界面

request('https://api.weixin.qq.com/cgi-bin/token?grant_type=' + grant_type + '&appid=' + appid + '&secret=' + secret, (err, response, body) => {

  let access_token = JSON.parse(body).access_token

  //console.log("access_token="+access_token)

  request('https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=' + access_token + '&type=jsapi', (err, response, body) => {

    let jsapi_ticket = JSON.parse(body).ticket

//console.log("jsapi_ticket="+jsapi_ticket)

    let nonce_str = '2345678'  // 密钥,字符串任意,可以随机生成

    let timestamp = new Date().getTime() // 时间戳

    let url = req.query.url  // 使用接口的url链接,不包含#后的内容

    // 将请求以上字符串,先按字典排序,再以'&'拼接,如下:其中j > n > t > u,此处直接手动排序

  let str = 'jsapi_ticket=' + jsapi_ticket + '&noncestr=' + nonce_str + '×tamp=' + timestamp + '&url=' + url

    // 用sha1加密

    let signature = sha1(str)

//console.log("signature="+signature)

    res.send({                                                //发送签名给前端

    appId: appid,

    timestamp: timestamp,

    nonceStr: nonce_str,

    signature: signature,

    })

  })

})

})

3.前端html页面

  //按微信公众号平台开放文档引用,https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#3

你可能感兴趣的:(Nodejs express接入微信JS-SDK, 微信好友分享,微信朋友圈分享,消息回复备忘)