来源:无锡微信公众号开发 | 2020-05-26 19:21:04 浏览:1212
现在貌似大家把微信网页开发与公众号服务开发都归于微信公众号(一类) 开发,我个人暂且分为两类。
个人定义:在通过用户向 订阅号(个人号) 发送的文本内容,来判断用户想要的功能点,称公众号服务开发。
【微信公众号开发的基本流程】
大家可以参考如下的流程目录:
一、注册公众号
二、了解公众号管理页面
三、必备开发者工具的使用
1.开发者文档
2.在线接口调试工具
3.web开发者工具
4.公众平台测试账号
四、细读开发者文档
五、开发流程重点解析
1.开发环境准备
2.服务器基本配置
3.存取access_token参数
4.公众号消息管理
5.获取openid以及网页授权(重难点)
(1)先明确为什么需要网页授权?我们的目的是什么?
(2)既然目的是获取用户基本信息,微信不是提供了专门的接口吗?非要网页授权?
微信平台提供了两种方式获取用户的openid
(3)网页授权有哪几种机制?分别是怎样实现?应用于什么场景?
(4)想要进行网页授权,我们需要在公众平台配置什么吗?
————————————————
微信公众号网站【正式开发】
1、登录’微信公众平台‘——’基本配置‘——点击 启用 服务器配置【需要的参数如下】
2、填写号上面的参数后,再写一个服务端的接口就OK了(目的:验证开发者服务器)。
接入说明文档在这里:用力点我,没几行描述,看一遍就懂。
这里用Node.js实现,实现过程简单易懂,比微信网页开发坑少了很多,几乎没坑:
Nginx反向代理到本地的设置:
注意: 此次开发同微信网页开发已穿透到本地。
location /wx/ {
proxy_pass http://127.0.0.1:9080/; # 暂是代理到9080穿透本地,原为9001}
service.js入口文件代码,没几行。。。
const express = require('express')
const app = express()
const wxgongzh = require('./routers/wxgongzh')// 微信公众号服务
app.use('/wxgongzh', wxgongzh)
app.listen(9080, () => {
console.log('服务启动成功:http://localhost:9080')})
主要实现微信验证开者服务器的代码:
const router = require('express').Router()
const sha1 = require('sha1')
const wxConfig = require('../config/wxConfig')router.get('/', (req, res) => {
console.log(req.query)
let { signature, echostr, timestamp, nonce } = req.querylet { token } = wxConfig
// 做字典序排序(将token、timestamp、nonce三个参数进行字典序排序)let tempArr = [token, timestamp, nonce]
tempArr.sort() // sort排序会直接改变原数组,至此字典序排序完成// 进行sha1加密
let selfSignature = sha1(tempArr.join(''))
console.log(signature)
console.log(selfSignature)
// 如果自己进行加密后的signature与微信请求过来的signature相同,则把 ‘echostr’ 字段返回回去即可验证成功if(selfSignature === signature) res.send(echostr)if(selfSignature !== signature) res.send('失败')})
module.exports = router
建立验证完成了,可以开心的进行功能上的开发了。
用于验证的代码编写完成后,再回到微信公众平台——填写服务器配置,点击 “提交”。