先搞懂两个概念,微信sdk初始化和微信授权
微信sdk初始化
wx.config({...}),实际是有能力拿到微信提供的sdk,比如扫一扫,相册等手机的原生功能
微信授权,实际就是url+appId,重定向到微信的服务器地址,最终微信会返回url,会在url上拼上一个临时的code,用此code,可以调用后端写好的接口,可以用户用户的openid(同一个公号,同一个用户openid是一致的)
tips:
1、因为授权返回的code是临时的,所以只能用一次,如果重复使用,后端的接口会报错,大概提示此code已经被用过了。
2、因为是重定向到微信服务器地址,然后在回跳回来(带有code的回跳),所以这里实际是发生了两次reload页面,或者说至少一次reload。所以在此以前请求的api,前端的请求日志都会被清掉。这里之前在项目中就出现了获取用户的openid接口被调用了两次(临时code被用了两次),而请求network看见只请求了一次,差点还把后端坑了。
微信授权最容易出现的一个报错:
redirect_uri参数错误,或redirect_uri,10003报错,实际是未配置微信公号后台没配置访问的url域名,具体配置方法自行百度。但恶心的来了,微信公号后台配置网页授权只有两个地址,那万一项目需要配置两个以上,就无法搞了。
比如a和b 这两个域名已经占用了授权域名,但本地要访问一个c域名。可能你们自然会想到修改电脑的hosts文件啊
没问题。
你把本地的localhost 指向到了c域名,这样访问c域名依然还是会出现redirect_uri参数错误(因为公号只配置了a和b两个域名,而此时又不能修改授权)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。