公众号网页授权域名,授权域名不够用怎么办

阅读(115)发布于 2023-07-31

微信公众号授权域名在哪里找到微信公众号授权 1、打开微信公众平台,输入账号密码登录后台。将域名A.example.com 微信公众平台->设置->公众号设置->功能设置->网页授权域名 在域名A.example.com添加中间页get-weixin-code.html 中间页不一定在根域名下。

配图

1、打开微信公众平台,输入账号密码登录后台。

2、点击【公众号设置】。

3、点击【功能设置】。

4、找到【网页授权域名】,点击旁边的【设置】。

5、在修改业务域名和JS接口域名时,已经上传过这个文件的话,那么请直接跳过这一步。如果还没上传的,直接点击文件下载,然后上传到服务器。

6、上传成功后,直接输入授权域名,点击【确认】即可。

登陆微信公众平台,菜单“设置”→“公众号设置”→功能设置→网页授权域名

【定义】授权回调页面域名:用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠。

以上定义似乎会把人带入误区,我一开始被整懵了。配了个回调地址,其实不用,只需要配置授权访问的域名就ok了,这里我配置的是testpcenter.shenbianhui.cn。注意,要保证域名可访问并且要把MP_verify_****.txt放到站点相应的目录下,否则点击“确认”按钮会提示的。

step2.构造微信用户请求的url

页面URL中的scope=snsapi_base表示应用授权作用域为不弹出授权页面,直接跳转,只获取用户openid

这里我配置的redirect_uri是http://testpcenter.shenbianhui.cn/TCP/WeixinJSPay.aspx

step3.返回回调页面如下

这里获得到了code

step4.再使用code获取OpenID

url如下:

返回如下

step5.获取全局AccessToken

返回结果:

step6.最后,使用全局ACCESS_TOKEN和OpenID就可以获取微信用户的详细信息了

返回如下:

至此,成功获得用户基本信息。

这种适合已经有OAuth2.0网页授权的服务号在网页中使用,且不会弹出“微信登录”页面。减少给用户的打扰。

ref:微信网页授权官方文档https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

其次:微信会立即发送code值和state(你自己设定的字段)到你的redirect_uri中,如:http://test.com/test/pay?code=CODE&state=STATE

2:拉取用户信息

微信的网页授权回调域名只能设置一个,但是多个业务使用同一个微信公众号授权信息的话,就需要使用者内部进行处理了。我在应用设计之初就会对应用做业务拆分,然后不同的业务采用不同的二级域名来部署。如果每个业务集成微信登录和微信支付,那么就会存在问题。因为根据授权回调页面域名的原则,它只能用一个域名,并且只有回调地址的域名与该设置完全相同,才能成功发起微信授权。

http://www.chanpindashi.com/2020/04/16/3364.html

本文部分知识来自网络后加工,目前服务号授权域名只有两个,项目一个一个上,后发现域名不够用,在此记录下。

项目进行微信开发,认证了一个微信服务号专门用于内部测试,但是内部可能存在多套不同环境(开发dev、测试sit、预发布uat)等,由于微信限制一个服务号只能配置2个网页授权域名,又不可能给每个环境单独配一个服务号,这样不仅需要成本而且很浪费资源,所以重点需要解决下面这个问题:

1、可以自动区分环境。比方部署开发环境。url可能是http://dev.xxx.com/api/,而在测试环境的时候应该是http://sit.xxx.com/api/。而并且不能写死,否则开发和测试就要换来换去。非常麻烦.

2、总结分享一下思路:

主要是通过中间页面代理获取微信授权CODE,然后跳转到对应需要使用的环境URL下;

比如原来开发环境,微信中授权域名配置的是dev.xxx.com,那么现在配置的是一个代理域名proxy.xxx.com,通过代理域名拿到code后在跳回dev.xxx.com,如下图所示

中间页的原理

中间页主要做了依次做了两件事情:

解决办法

假设我们有A.example.com、B.example.com、C.example.com域名想使用微信授权,我们可以将网页授权域名设置为A.example.com。

步骤如下:

设置回调域名。将域名A.example.com

微信公众平台->设置->公众号设置->功能设置->网页授权域名

在域名A.example.com添加中间页get-weixin-code.html

中间页不一定在根域名下。在这里我们放在根域名下。中间页的访问地址如下,https://A.example.com/get-weixin-code.html

假设域名B.example.com/game需要进行网页授权。我们可以使用下面链接进行授权,获取微信的授权code

https://A.example.com/get-weixin-code.html?appid=XXXX&scope=snsapi_base&state=hello-world&redirect_uri=https%3A%2F%2FB.example.com%2Fgame

最终会回调到这个地址https://B.example.com/game?code=XXXXXXXXXXXXXXXXX&state=hello-world,这样就可以拿到授权code和state参数。

利用授权code,请求自己后端服务器,获取微信用户信息。

以上就是关于公众号网页授权域名的解答,如果对你有帮助,不妨关注本站,本站将为你整理更多内容。