微信公众号H5-网页开发须知
网页授权
1. 公众号配置--授权回调域名(仅域名,不带https://)
2. 配置的域名为全域名,该域名下的页面可以进行OAuth2.0鉴权
3. scope 授权的【静默、非静默】
a、(静默--无授权页,只能获取openID)以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的【静默拿code--》获取token时含openID】,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
b、(【普通情况下--非静默,弹授权页】该scope关注公众号,且从公众号会话、菜单进入时也可静默)以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
c、(必须关注公众号) 用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
4. 网页授权流程【同意授权---》获取code---》调用公众号token接口返回含openID【scope为snsapi_base的流程到此结束】--》token+openID获取用户基本信息(支持UnionID机制)scope为snsapi_userinfo的流程】:
1、引导用户进入授权页面【同意授权】,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同:普通access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
设置域名有数量上限,一般做法:
1. 放置一级域名,按理讲该一级域名下的子域名也可以使用
2. 设置一个,做一个转发页。此处引用:https://www.jianshu.com/p/c8f3e5c9d79f
JSSDK【js安全域名配置配置】
1.绑定域名:登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”,必须域名不能IP。配置后将证书放置域名根目录下(必须域名请求可直接打开)
2.jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过普通access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。
2020年8月4日起,平台将公众号的JS接口安全域名额度由3个提升为5个,一个自然月内最多可修改次数由3次提升为5次。 公众号开发者可在配置的域名下调用微信开放的JS接口。
功能入口:MP后台-设置-公众号设置-功能设置-JS接口安全域名。
关于网页授权access_token和普通access_token的区别
1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;
2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。
3、有效期:两者有效时间都是7200s。
4、使用范围:通过网页授权获得的access_token,只能获取到对应的微信用户信息,与微信用户是一对一关系;而普通的access_token在有效期内可以使用,可以获取所有用户信息。
5、次数限制:普通access_token每天获取最多次数为2000次,而网页授权的access_token获取次数没有限制。