帅华君向来不喜欢绕弯弯,喜欢开门见山的直来直去,不过在开始正式第一关的教程之前呢,帅华君要先给大家梳理下这一系列博文的讲解套路。
既然是要将微信公众平台的接口,那么我们要知道微信公众平台都有哪些接口,因此我把微信公众平台所有接口权限列出来,也就是我这一系列博文的套路了。
三大类目
- 对话服务
- 功能服务
- 网页服务
二十六大功能(其下有若干接口)
- 基础支持
- 获取access_token
- 获取微信服务器IP地址
- 接收消息
- 验证消息真实性
- 接收普通消息
- 接收事件推送
- 接收语音识别结果
- 发送消息
- 自动回复
- 客服接口
- 群发接口
- 模板消息(业务通知)
- 一次性订阅消息
- 用户管理
- 用户分组管理
- 设置用户备注名
- 获取用户基本信息
- 获取用户列表
- 获取用户地理位置
- 推广支持
- 生成带参数的二维码
- 长链接转短链接接口
- 界面丰富
- 自定义菜单
- 个性化菜单
- 素材管理
- 永久素材管理接口
- 临时素材管理接口
- 智能接口
- 语义理解接口
- 多客服
- 获取客服聊天记录
- 客服管理
- 会话控制
- 微信支付
- 微信支付接口
- 微信小店
- 微信小店接口
- 微信卡包
- 微信卡包接口
- 设备功能
- 设备功能接口
- 网页授权
- 网页授权获取用户基本信息
- 基础接口
- 判断当前客户端版本是否支持指定JS接口
- 获取jsapi_ticket
- 分享接口
- 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
- 获取“分享给朋友”按钮点击状态及自定义分享内容接口
- 获取“分享到QQ”按钮点击状态及自定义分享内容接口
- 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
- 图像接口
- 拍照或从手机相册中选图接口
- 预览图片接口
- 上传图片接口
- 下载图片接口
- 音频接口
- 开始录音接口
- 停止录音接口
- 播放语音接口
- 暂停播放接口
- 停止播放接口
- 上传语音接口
- 下载语音接口
- 智能接口
- 识别音频并返回识别结果接口
- 设备信息
- 获取网络状态接口
- 地理位置
- 使用微信内置地图查看位置接口
- 获取地理位置接口
- 界面操作
- 隐藏右上角菜单接口
- 显示右上角菜单接口
- 关闭当前网页窗口接口
- 批量隐藏功能按钮接口
- 批量显示功能按钮接口
- 隐藏所有非基础按钮接口
- 显示所有功能按钮接口
- 微信扫一扫
- 调起微信扫一扫接口
- 微信小店
- 跳转微信商品页接口
- 微信卡券
- 调起适用于门店的卡券列表并获取用户选择列表
- 批量添加卡券接口
- 查看微信卡包中的卡券
- 微信支付
- 发起一个微信支付请求
回头可以把该博文当作目录,直接跳转到对应功能接口的博文。为了能够用到所有权限,需要用到微信公众平台提供的测试账号,那么开始进入正题。
在左侧开发类目下找到开发者工具,然后再右侧选择进入公众平台测试帐号
按照提示扫码登陆公众平台测试账号系统。
到这一步我们得到了appID和appsecret,请在代码编辑器中保存好这两个代码串,因为后边调用所有接口都会频繁的用到。
接下来需要填写接口配置信息,此信息需要你有自己的服务器资源,填写的URL需要正确响应微信发送的Token验证。
帅华君网站的服务器是基于NodeJS来开发,因此我打算写一个wechat路由模块,之后到启动脚本内导入模块并应用路由。
根据你的实际情况填写好你接受微信服务器请求的URL和你的token。
之后点击提交,我们从控制台打印出来微信服务器发送过来的请求参数都有哪些。
创建一个检查signature的函数,并仅在此时执行一次,当配置成功后这段代码即可删除。
const checkSignature = (q) => {
var signature = q.signature;
var echostr = q.echostr;
var token = 'shuaihua';
var timestamp = q.timestamp;
var nonce = q.nonce;
var array = new Array(token, timestamp, nonce);
array.sort();
var str = array.toString().replace(/,/g, "");
var sha1Code = crypto.createHash("sha1");
var code = sha1Code.update(str, 'utf-8').digest("hex");
if (code == signature) {
return echostr;
}
return 'error';
}
const wechat = express.Router();
wechat.use('/', (req, res) => {
res.send(checkSignature(req.query));
});
系统提示配置成功,则说明我们的接入配置成功。
至此,微信公众平台开发者接入成功,从下一篇开始将正式开始玩各种微信公众平台的接口。