微信公众号注册、开发等调研

350 阅读12分钟

参考资料

juejin.cn/post/699042… 微信授权

juejin.cn/post/696602…

微信小程序API

developers.weixin.qq.com/doc/offiacc…

服务器配置教程

juejin.cn/post/684490…

公众账号开发

帮助中心:kf.qq.com/product/wei…

先总结吧,以防文字太多看不下去

注册公众号,在公众号平台配置菜单,如图所示:

简单的页面都可以在手动配置,去发布公众号,跳转网页要授权域名、配置服务器环境,开发h5页面,最后测试人员或者运营人员将地址配置一下。

网址配置方式:可以走第三方登录,要授权域名,配置服务器。

有可能在开发过程中会用到微信js-skd ,网址如下:

developers.weixin.qq.com/doc/offiacc…

h5开发配置rem:

方法一:

import px2rem from 'postcss-px2rem'; (参考:zhuanlan.zhihu.com/p/493843465

方法二:

umi配置rem:

extraPostCSSPlugins: [
 px2rem({
 rootValue:100,
 remUnit: 75,
 })
 ],

以下的开发准备为扩展部分。

1、开发前的准备

1 、注册账号(也可以申请测试公众开发账号)

  • 1.登录微信开发者平台,左侧菜单栏找到开发-->开发者工具,点击进入。
  • 2.点击web开发者工具,这个就是绑定我们的开发者微信账号,方便后面调试。

(正式公众号申请地址:mp.weixin.qq.com/

微信公众号接口测试帐号申请

测试公众号和正式公众号区别

  • 微信公众号测试号和你的正式的公众号不是同一个公众号,它们有不同的配置信息,如 appID, appsecret。微信公众号测试号相当于一个虚拟的公众号,可以让你调用很多接口,当你通过测试号实现了你的业务,最后,可以将你的配置参数改为正式的公众号。
  • 测试号不需要设置 IP 白名单,使用测试号的配置信息去调用微信公众平台的接口是没有 IP 限制的。

2、设置域名

配置域名地址:mp.weixin.qq.com/cgi-bin/set…

微信公众平台的域名如下:

  1. 通用域名(api.weixin.qq.com),使用该域名将访问官方指定就近的接入点;
  2. 通用异地容灾域名(api2.weixin.qq.com),当上述域名不可访问时可改访问此域名;
  3. 上海域名(sh.api.weixin.qq.com),使用该域名将访问上海的接入点;
  4. 深圳域名(sz.api.weixin.qq.com),使用该域名将访问深圳的接入点;
  5. 香港域名(hk.api.weixin.qq.com),使用该域名将访问香港的接入点。

注意:配置域名需要将 将文件MP_verify_9RRCEIMRGoeyIhOx.txt(点击下载)上传到域名或路径指向的web服务器

3、配置服务器

在公众平台配置自己的域名和服务器,开发者的服务器与微信公众平台进行对接

  • 开发者在微信公众平台提供的接口的基础上开发自己的服务,服务分为两种:公众号消息会话和公众号内网页。

\

\

公众号用户的识别

微信用户在公众号内的请求会携带一个 OpenID 的参数,来标识一个用户。每个用户对每个公众号都会产生一个唯一的 OpenID。如果需要在多个公众号之间做用户共通,需要将这些公众号和应用绑定到一个开发平台账号下,绑定后,一个用户对多个公众号依然有多个不同的 OpenID,但一个用户只有一个唯一的 UnionID。

4、公众号开发注意事项

  • 微信公众平台开发是指微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台的开发,请前往微信开发平台接入。
  • 在申请到认证公众号之前,可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。
  • 在开发过程中,可以使用接口调试工具来在线调试某些接口。
  • 每个接口都有每日接口调用频次限制,可以在公众平台官网-开发者中心处查看具体频次。
  • 在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在微信公众平台官网-开发者中心处可以设置接口报警),开发发现和解决问题。
  • 公众平台以 access_token 为接口调用凭据,来调用接口,所有接口的调用需要先获取access_token,access_token 在2小时内有效,过期需要重新获取,但1天内获取次数有限,开发者需自行存储。
  • 公众平台接口调用仅支持80端口。

5、公众号服务介绍

公众号消息会话

  1. 群发消息:公众号可以以一定频次(订阅号为每天1次,服务号为每月4次),向用户群发消息,包括文字消息、图文消息、图片、视频和语音等。
  2. 被动回复消息:在用户给公众号发消息后,公众号可以自动回复一个消息。
  3. 客服消息:在用户给公众号发消息后的48小时内,公众号可以给用户发送不限数量的消息,主要用于客服场景。
  4. 模板消息:用于给用户发送服务通知,如刷卡提醒,服务预约成功通知等。公众号可以用特定内容模板主动向用户发送。

6、公众号内网页

许多复杂的业务场景,需要通过网页形式来提供服务,如商城,水电缴费等。公众号网页可以通过点击公众号发送的消息,或者点击公众号菜单进入网页。网页需要用到的公众平台的功能:网页授权获取用户基本信息,微信JS-SDK。

7、微信公众号开发接入

微信公众号接入是指:部署自己的公众号应用程序到自己的服务器上,然后在微信公众平台配置自己的服务器信息,进行 token 验证,token 验证成功,说明微信公众平台能够正常地与你的服务器进行通信。

微信公众号开发接入过程如下:

  1. 编写公众号应用程序(含验证 token 的接口),服务器启动程序。
  2. 在微信公众平台网站填写服务器配置。在微信公众平台的“开发-基本配置-服务器配置-修改配置”页面,填写服务器的信息。
  3. 验证 token。点击“基本配置页面”下方的提交按钮,进行 token 验证。若当前页面出现“token验证失败”的提示,则说明配置的信息有误,或者你服务器的代码有误;若token验证成功,则会自动返回基本配置的主页面。
  4. 启用配置,准备开发。token 验证成功后,点击“启用”按钮,启用配置的服务器。然后使用微信公众平台提供的接口实现自己业务逻辑。

公众号接入成功后,可以进行微信公众平台 API 的调用测试。主要过程为:编写程序,调用程序,查看程序返回结果。

8、获取 Access token

调用微信公众平台接口之前,必须获取 access_token,access_token 是公众号的全局唯一调用凭据,公众号调用公众平台的接口时都需要使用 access_token 作为参数。

access_token 的存储至少需要保留 512 个字符空间,它的有效期为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。

access_token 使用说明:

  • 建议公众号开发者使用中控服务器统一获取和刷新access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务;
  • 目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器可对外继续输出的老access_token,此时公众平台后台会保证在5分钟内,新老access_token都可用,这保证了第三方业务的平滑过渡;

9、IP 白名单

在 IP 白名单内的IP来源,获取 access_token 接口才可调用成功。

微信公众平台接口在线调试工具

微信公众平台接口在线调试工具,是为了帮助开发者检测调用公众平台 API 时发送的请求参数是否正确。在“在线调试工具”的页面提交相关信息后,提交请求,可获得公众平台服务器的返回结果。

在线调试工具的主要功能是帮你构造参数,其实其它任何地方也可以调用微信公众平台的接口。

链接地址:微信公众平台接口调试工具

Web开发者工具

微信公众平台为开发者提供“web开发者工具”,用于帮助开发基于微信的网页或者webapp。它是一个桌面应用,通过模拟微信客户端的表现使得开发者可以使用这个工具方便地在 PC 上进行开发和调试。

下载地址:web开发者工具

微信公众平台的接口调用和微信公众号内的网页请求

微信公众号的网页,需要在微信公众号内或者在微信web开发者工具中打开。

微信公众平台的接口调用可以在任何支持 HTTP 请求的地方请求并得到返回结果。但“获取access_token 接口”的请求的客户端 IP 需要 IP 白名单中,才能成功返回。然而,调用其它公众平台接口需要 access_token 作为参数,近似相当于没有在 IP 白名单内的客户端请求无法调用微信公众平台接口。不在 IP白名单的客户端的请求结果如下:

1api.weixin.qq.com/cgi-bin/tok…
1{"errcode":40164,"errmsg":"invalid ip 58.213.199.30 ipv6 ::ffff:58.213.199.30, not in whitelist hint: [Zhnd8cQNe-4P2DPA]"}

微信公众平台的接口和功能

微信公众平台提供的接口和功能如下:

  • 自定义菜单
  • 消息管理
  • 微信网页开发
  • 素材管理
  • 图文消息留言管理
  • 用户管理
  • 帐号管理
  • 数据统计
  • 微信卡券
  • 微信门店
  • 智能接口
  • 微信设备功能
  • 新版客服功能
  • 对话能力(原导购助手)
  • 微信“一物一码”
  • 微信发票

我们可以简单地将微信公众平台的API接口分为三类:

  • 基础接口(菜单,用户,素材等),为消息服务和网页服务提供基础。
  • 消息服务接口。
  • 网页服务接口。

以上功能的具体的使用步骤和接口调用说明,请参考 微信公众号开发指南

微信网页服务开发

网页授权

网页授权是指:在用户访问公众号网页时获取该微信用户的信息需要先跳转到用户授权页面进行授权。

微信公众号应用需要通过微信用户的 openId 来标识用户,我们需要通过网页授权来获取用户信息,根据用户的 openId 知道是哪个用户访问了公众号网页,然后进行相应的业务处理。

网页授权的过程为:公众号页面重定向跳转到微信用户授权页面,微信回调你的服务器,你获得 code 参数,利用 code 参数获取 JSAPI access_token(与基础 API 的 access_token 不同),利用 access_token 去调用微信 API 获取用户基本信息。

网页授权的实现过程:

  • 在后端定义一个 Filter,拦截所有需要进行网页授权的请求(特定的 URI 前缀),检查请求的 session 中是否存在 openId。如果 openId 不存在,则需要进行网页授权,将未授权的请求重定向到微信授权页面;如果 openId 存在,则不进行任何处理。
  • 微信回调后,你获取到了 code 参数,然后利用 code 参数调用微信 API 获取 access_token 参数,然后利用 access_token 调用微信 API 获取用户基本信息。需要调用两次微信 API。
  • 将微信用户基本保存到 session 中。

JS-SDK使用说明

JS-SDK 功能的页面参考样式:www.weixinsxy.com/jssdk/

JS-SDK 接口主要的功能:监听分享事件,暂存音频和视频,调用微信APP的功能(如微信扫一扫、内置地图),微信支付等。

访问测试公众号的网页的条件:

  • 需要在微信开发者工具或者微信APP中访问公众号网页。
  • 需要扫码关注了测试公众号的用户才能访问该公众号网页。
  • 微信公众平台中配置”JS接口安全域名”(公众号调用 JSSDK 的域名),需要备案的域名,而不能是 IP。
  • 微信公众平台中配置“接口权限列表–网页授权获取用户基本信息–授权回调页面域名”(用户授权后回调公众号的域名),需要备案的域名才行。
  • “JS接口安全域名”与“授权回调页面域名”,需要保持一致。
  • (Note: 微信公众平台中配置“Token验证” 的 URL是用于“token 验证”(消息通信是否正常)和“微信公众号的消息服务开发”(消息服务通信的 URL 与 token 验证 的 URL 一致,但消息服务是 HTTP POST 请求),token 验证 URL 与公众号网页服务开发没有关系。消息服务的通信 URL 可以是 IP,可以与网页服务的两个域名不一致)

使用微信 JS-SDK 接口

调用微信 JS-SDK 的 API 接口需要

开发者应用提供相关配置和签名参数给 JS-SDK 的配置接口。主要是4个参数:appId,timestamp,nonceStr 和 signature。

获取签名的实现过程:通过普通的 access_token 调用微信 API 获取 jsapi_ticket 参数,生成一个随机字符串(可使用UUID),根据签名算法,将需要4个参数转换为1个签名参数。

更多内容请参考官方说明: