发布日期 » 2017年9月5日 星期二

版权声明 » 自媒体人·陈帅华原创内容,转载请注明出处

搞定微信公众平台开发者基本配置

帅华君向来不喜欢绕弯弯,喜欢开门见山的直来直去,不过在开始正式第一关的教程之前呢,帅华君要先给大家梳理下这一系列博文的讲解套路。

既然是要将微信公众平台的接口,那么我们要知道微信公众平台都有哪些接口,因此我把微信公众平台所有接口权限列出来,也就是我这一系列博文的套路了。

三大类目

  • 对话服务
  • 功能服务
  • 网页服务

二十六大功能(其下有若干接口)

  • 基础支持
    • 获取access_token
    • 获取微信服务器IP地址
  • 接收消息
    • 验证消息真实性
    • 接收普通消息
    • 接收事件推送
    • 接收语音识别结果
  • 发送消息
    • 自动回复
    • 客服接口
    • 群发接口
    • 模板消息(业务通知)
    • 一次性订阅消息
  • 用户管理
    • 用户分组管理
    • 设置用户备注名
    • 获取用户基本信息
    • 获取用户列表
    • 获取用户地理位置
  • 推广支持
    • 生成带参数的二维码
    • 长链接转短链接接口
  • 界面丰富
    • 自定义菜单
    • 个性化菜单
  • 素材管理
    • 永久素材管理接口
    • 临时素材管理接口
  • 智能接口
    • 语义理解接口
  • 多客服
    • 获取客服聊天记录
    • 客服管理
    • 会话控制
  • 微信支付
    • 微信支付接口
  • 微信小店
    • 微信小店接口
  • 微信卡包
    • 微信卡包接口
  • 设备功能
    • 设备功能接口
  • 网页授权
    • 网页授权获取用户基本信息
  • 基础接口
    • 判断当前客户端版本是否支持指定JS接口
    • 获取jsapi_ticket
  • 分享接口
    • 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
    • 获取“分享给朋友”按钮点击状态及自定义分享内容接口
    • 获取“分享到QQ”按钮点击状态及自定义分享内容接口
    • 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
  • 图像接口
    • 拍照或从手机相册中选图接口
    • 预览图片接口
    • 上传图片接口
    • 下载图片接口
  • 音频接口
    • 开始录音接口
    • 停止录音接口
    • 播放语音接口
    • 暂停播放接口
    • 停止播放接口
    • 上传语音接口
    • 下载语音接口
  • 智能接口
    • 识别音频并返回识别结果接口
  • 设备信息
    • 获取网络状态接口
  • 地理位置
    • 使用微信内置地图查看位置接口
    • 获取地理位置接口
  • 界面操作
    • 隐藏右上角菜单接口
    • 显示右上角菜单接口
    • 关闭当前网页窗口接口
    • 批量隐藏功能按钮接口
    • 批量显示功能按钮接口
    • 隐藏所有非基础按钮接口
    • 显示所有功能按钮接口
  • 微信扫一扫
    • 调起微信扫一扫接口
  • 微信小店
    • 跳转微信商品页接口
  • 微信卡券
    • 调起适用于门店的卡券列表并获取用户选择列表
    • 批量添加卡券接口
    • 查看微信卡包中的卡券
  • 微信支付
    • 发起一个微信支付请求

回头可以把该博文当作目录,直接跳转到对应功能接口的博文。为了能够用到所有权限,需要用到微信公众平台提供的测试账号,那么开始进入正题。

点击这里在新标签页登陆 微信公众平台后台

点击这里在新标签页查看 开发者文档

在左侧开发类目下找到开发者工具,然后再右侧选择进入公众平台测试帐号

按照提示扫码登陆公众平台测试账号系统

到这一步我们得到了appIDappsecret,请在代码编辑器中保存好这两个代码串,因为后边调用所有接口都会频繁的用到。

接下来需要填写接口配置信息,此信息需要你有自己的服务器资源,填写的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));
});

系统提示配置成功,则说明我们的接入配置成功。

至此,微信公众平台开发者接入成功,从下一篇开始将正式开始玩各种微信公众平台的接口。