Published 2020-07-27 微信公众平台是微信团队为微信公众号开发者提供的一个基础平台,平台通过为公众号开发者提供一系列的接口,让公众号能够更好的为微信用户提供服务。 微信公众号是微信 APP 中的一个功能,它是公众号运营者为微信用户提供资讯和服务的接入点,微信用户通过订阅公众号和进入公众号,可以看到公众号提供的服务菜单和推送消息。 如何开发一个公众号 公众号用户的识别 微信用户在公众号内的请求会携带一个 OpenID
的参数,来标识一个用户。每个用户对每个公众号都会产生一个唯一的 OpenID。如果需要在多个公众号之间做用户共通,需要将这些公众号和应用绑定到一个开发平台账号下,绑定后,一个用户对多个公众号依然有多个不同的 OpenID,但一个用户只有一个唯一的 UnionID。 公众号开发注意事项 公众号服务介绍 公众号消息会话 公众号内网页 许多复杂的业务场景,需要通过网页形式来提供服务,如商城,水电缴费等。公众号网页可以通过点击公众号发送的消息,或者点击公众号菜单进入网页。网页需要用到的公众平台的功能:网页授权获取用户基本信息,微信JS-SDK。
微信公众号接入是指:部署自己的公众号应用程序到自己的服务器上,然后在微信公众平台配置自己的服务器信息,进行 token 验证,token 验证成功,说明微信公众平台能够正常地与你的服务器进行通信。 微信公众号开发接入过程如下: 公众号接入成功后,可以进行微信公众平台 API 的调用测试。主要过程为:编写程序,调用程序,查看程序返回结果。 公众平台接口域名 微信公众平台有多个域名,开发者可以根据自己的服务器部署情况,选择最佳的接入点(延时更低,稳定性更高)。除此之外,开发者可以将其他接入点用作容灾用途,当网络链路发生故障时,可以考虑选择备用接入点来接入。微信公众平台的域名如下:
获取 Access token 调用微信公众平台接口之前,必须获取 access_token,access_token 时公众号的全局唯一调用凭据,公众号调用公众平台的接口时都需要使用 access_token 作为参数。 access_token 的存储至少需要保留 512 个字符空间,它的有效期为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。 access_token 使用说明: 接口调用请求: 返回说明: 成功返回信息如下
IP 白名单 在 IP 白名单内的IP来源,获取 access_token 接口才可调用成功。 接口测试号申请 微信公众平台的某些高级接口的调用权限需要微信认证后才可以获取。为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,可以申请微信公众帐号测试号。 微信公众号测试号和你的正式的公众号不是同一个公众号,它们有不同的配置信息,如 appID, appsecret。微信公众号测试号相当于一个虚拟的公众号,可以让你调用很多接口,当你通过测试号实现了你的业务,最后,可以将你的配置参数改为正式的公众号。 测试号不需要设置 IP 白名单,使用测试号的配置信息去调用微信公众平台的接口是没有 IP 限制的。 链接地址:微信公众号接口测试帐号申请 微信公众平台接口在线调试工具 微信公众平台接口在线调试工具,是为了帮助开发者检测调用公众平台 API 时发送的请求参数是否正确。在“在线调试工具”的页面提交相关信息后,提交请求,可获得公众平台服务器的返回结果。 在线调试工具的主要功能是帮你构造参数,其实其它任何地方也可以调用微信公众平台的接口。 链接地址:微信公众平台接口调试工具 Web开发者工具 微信公众平台为开发者提供“web开发者工具”,用于帮助开发基于微信的网页或者webapp。它是一个桌面应用,通过模拟微信客户端的表现使得开发者可以使用这个工具方便地在 PC 上进行开发和调试。 下载地址:web开发者工具 微信公众平台的接口调用和微信公众号内的网页请求 微信公众号的网页,需要在微信公众号内或者在微信web开发者工具中打开。 微信公众平台的接口调用可以在任何支持 HTTP 请求的地方请求并得到返回结果。但“获取access_token 接口”的请求的客户端 IP 需要 IP 白名单中,才能成功返回。然而,调用其它公众平台接口需要 access_token 作为参数,近似相当于没有在 IP 白名单内的客户端请求无法调用微信公众平台接口。不在 IP白名单的客户端的请求结果如下:
微信公众平台的接口和功能微信公众平台提供的接口和功能如下:
我们可以简单地将微信公众平台的API接口分为三类:
以上功能的具体的使用步骤和接口调用说明,请参考 微信公众号开发指南。 微信网页服务开发网页授权网页授权是指:在用户访问公众号网页时获取该微信用户的信息需要先跳转到用户授权页面进行授权。 微信公众号应用需要通过微信用户的 openId 来标识用户,我们需要通过网页授权来获取用户信息,根据用户的 openId 知道是哪个用户访问了公众号网页,然后进行相应的业务处理。 网页授权的过程为:公众号页面重定向跳转到微信用户授权页面,微信回调你的服务器,你获得 code 参数,利用 code 参数获取 JSAPI access_token(与基础 API 的 access_token 不同),利用 access_token 去调用微信 API 获取用户基本信息。 网页授权的实现过程:
JS-SDK使用说明JS-SDK 功能的页面参考样式:https://www.weixinsxy.com/jssdk/ JS-SDK 接口主要的功能:监听分享事件,暂存音频和视频,调用微信APP的功能(如微信扫一扫、内置地图),微信支付等。 访问测试公众号的网页的条件:
使用微信 JS-SDK 接口 调用微信 JS-SDK 的 API 接口需要开发者应用提供相关配置和签名参数给 JS-SDK 的配置接口。主要是4个参数:appId,timestamp,nonceStr 和 signature。 获取签名的实现过程:通过普通的 access_token 调用微信 API 获取 jsapi_ticket 参数,生成一个随机字符串(可使用UUID),根据签名算法,将需要4个参数转换为1个签名参数。 JS-SDK 的使用如下: 1)进行权限验证
2)权限验证成功后,会执行JS-SDK 的 wx.ready() 方法:
3)权限验证失败后,会执行 JS-SDK 的 wx.error() 方法。
更多内容请参考官方说明:
微信公众号开发接入示例下面以 Java 为例,基于 Spring Boot 框架进行示例展示。 1.创建和配置项目 创建一个 Maven 项目,项目名为
配置
配置 log4j2 日志
配置 Spring Boot 参数和业务参数
2.编写验证 token 的 Java 代码
3.打包项目,部署到服务器,运行项目 打包项目:
将项目打包文件上传到服务器,运行以下命令启动项目:
4.在微信公众平台网站进行 token 验证
Summary微信基础 API 接口 前提要求
不满足前提的错误结果
功能列表
如何对接
微信消息服务 前提要求
不满足前提的错误结果
功能列表
如何对接
微信网页服务 前提要求
不满足前提的错误结果
功能列表
如何对接
常见问题Question: 公众号页面重定到微信用户授权页面(获取 code )时出现错误 微信授权页面错误提示为: Solution: 确保在微信开发者工具或者微信APP 中打开微信公众号的页面链接,而不是在浏览器打开。 检查配置。微信公众平台的接口权限列表中的“网页授权获取用户信息”行,修改“授权回调页面域名”(不需要加 http:// or https://) Question: JSAPI 参数错误,无效的签名。 错误提示为: Solution: 检查需要的4个参数(noncestr, jsapi_ticket, timestamp, url)是否不为空,是否正确。 检查签名算法是否正确。 检查访问的页面的 URL 要与传递的 URL 一致。注意传递的 url 是 Question: JS-SDK debug 模式没有弹出提示 Solution: 检查 JSSDK 的 js 引用是否正确。如, 查看微信开发者工具的 console,JavaScript 代码是否有语法错误。 Appendixes开发者规范 接口权限说明 全局返回码说明 References[1] 微信公众号开发指南 - DOC [2] 微信公众平台 |