微信公众号开发(本地)

  1. 微信开发公众平台网址

微信开放文档

  1. 其中url 需要 搭建本地服务器 并利用copar 进行内网穿透。

2.1搭建本地服务器

可参考:express 搭建简易的本地服务器_express 本地-CSDN博客


// 引入express模块
var express = require('express');
// 获取服务实力对象
var app = express();
//===================第一:获得req.query===============================
 app.use((req, res, next) => {
   console.log(req.query);

   res.send(111);
 })


// 监听端口
app.listen(3000,err => {
    if(!err) console.log('服务器已启动 端口号3000:::')
})
// 配置路由
app.post('/person',(req,res)=>{
    res.json({
        name:'zhangsan',
        age:20
    })
})

2.2下载cpolar - secure introspectable tunnels to localhost

2.2.1解压 到在本地创建文件夹D:\cpolar目录

2.2.2链接authertoken关联账号

2.2.3cpolar http 8080

进行接口配置后 把res.query的数据存储

调接口获得res.query 进行存储(验证消息是否是来自微信服务器的)


// 引入express模块
var express = require('express');
// 获取服务实力对象
var app = express();
//===================第一:获得req.query===============================
// app.use((req, res, next) => {
//   console.log(req.query);

//   res.send(111);
// })
//===================第二:获得req.query===============================
// 引入 sha1 模块将计算出的结果加密
const sha1 = require('sha1');
// 配置对象,存我们需要的内容
const config = {
  token: "ajshfkhdsfkjhlkjfwuyewueyoweuishfjdfhjskd",
  appID: "wx1c5d829a0ba23423c7bcb234234",
  appsevret: "a85ac6df09ebe03ebderwb9dd079b6b7757234234234"
}

app.use((req, res, next) => {
  console.log(req.query);
  // 解构赋值
  const { signature, echostr, timestamp, nonce } = req.query;
  const { token } = config;
    res.set('Content-Type','text/plain')
  // console.log('测试' + echostr);
  //将参与微信加密签名的三个参数(传来的:timestamp、nonce、自己设置的:token),组合到一起,按照字典排序,并组合在一起形成一个数组
  const arr = [timestamp, nonce, token];
  // 排序

  const arrSort = arr.sort();
  console.log('arrSort:' + arrSort);
  // 将数组所有参数拼接
  const str = arr.join('');
  console.log('str:' + str);
  // 加密
  const sha1Str = sha1(str);
  console.log('加密后:' + sha1Str);
  // 判断是否相同
  if (sha1Str === signature) {
        res.send(req.query.echostr)
  } else {
    res.end('error');
    console.log('error');
  }
});

// 监听端口
app.listen(3000,err => {
    if(!err) console.log('服务器已启动 端口号3000:::')
})

tip:

  1. 举例:1deb32c8.r8.cpolar.top

2.

补充: 如果遇到跨域问题↓

NodeJS 的相关包管理器提供了实现 CORS 的第三方中间件

npm install cors

↓使用参考

// 引入express模块
var express = require('express');
// 获取服务实力对象
var app = express();
const cors = require('cors');
//===================第一:获得req.query===============================
app.use(cors());
 
app.post('/person',(req,res)=>{
    res.json({
        name:'zhangsan',
        age:20
    })
})
// 监听端口
app.listen(3000,err => {
    if(!err) console.log('服务器已启动 端口号3000:::')
})
// 配置路由
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值