本篇文章给大家谈谈公众号多域名授权源码,以及公众号网页授权域名对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、有一套微信公众号的源码,请问如何安装,如购买了虚拟空间,有一个三级域名,请详细一些,是不是需要和公
- 2、微信OAuth2.0授权回调页面域名设置问题怎么解决?
- 3、快速实现微信公众号认证授权开发
- 4、微信公众号网页授权域名指向别的域名
- 5、微信公众号配置网页授权域名,在线等,求大神指教
- 6、微信公众号多域名授权怎么搞
有一套微信公众号的源码,请问如何安装,如购买了虚拟空间,有一个三级域名,请详细一些,是不是需要和公
怎么感觉你是被蒙了……公众号用不上源码,用不上虚拟主机,除非你是申请成为开发者,使用开发模式。但开发模式是要熟悉编程语言,纯玩代码的,看你这样提问真心不像……你“买的源码”没给教程或使用方法?
微信OAuth2.0授权回调页面域名设置问题怎么解决?
当下的解决方案是引入一个新的非常简单的应用来作为微信授权的代理服务,可以这么做:
1. 把公众号的网页授权接口域名设置成另外一个子域名,如proxy.your.com;
2. 然后把php_weixin_proxy里面的index.php部署到proxy.your.com
php_weixin_proxy下的index.php是一个很简单的php文件,你可以直接查看源码了解它的实现方式。因为当前项目的环境,我采用php来完成这个代理服务实现,实际上,你完全可以用任意平台语言来完成类似的功能。
当其它业务需要发起微信授权时,将授权请求先发到proxy.your.com,然后proxy.your.com会把这个请求转发到微信;
当用户同意授权后,proxy.your.com会收到微信的授权回调,并把回调结果(code、state参数)原封不动地再返回给最开始发起授权的业务。
唯一的区别在于,在不使用proxy.your.com的时候,你从应用发起微信授权的链接应该是这样的:
;redirect_uri=http%3A%2F%2Fpassport.your.com%2Fresponse_type=codescope=snsapi_loginstate=584bc87e11ff37492#wechat_redirect
用了proxy.your.com之后,这个授权链接就应该是这样的:
;redirect_uri=http%3A%2F%2Fpassport.your.com%2Flogin%2Fnotifyresponse_type=codescope=snsapi_basestate=584bc87e11ff37492device=pc
后面这个链接跟上面的比:
1. 后面的链接中的host变成了proxy.your.com,也就是代理的授权回调域名;
2. 后面的多了一个device参数,这个是必要的。因为微信pc端跟移动端的授权地址是不一样的,而后面的链接是发送个proxy.your.com的,所以需要多加个参数告诉它在转发给授权申请给微信的时候,是用PC端还是移动端的授权地址。
1. 用户从我们的应用触发需要授权的操作,比如点击微信登录;
2. 应用收到这种用户请求后,将用户重定向到微信提供的一个授权页面:
或
3. 用户通过微信扫码(PC端授权,上边左图)或者点击确认按钮(移动端授权,上边右图)告知微信,授权应用访问自己的微信账号信息;
4. 微信收到用户的授权许可后,生成授权码,并把它作为参数回调至应用的某个页面;
5. 应用的回调页面在接收到微信的回调请求后,拿到其中的授权码,并通过微信官方提供的access token api接口获取access token;
6. 最后通过access token以及微信官方提供的另一个userinfo api接口就能获取到用户的微信账号信息。
为了实现这个过程,首先要为应用申请一个微信公众号,并将应用最终部署的域名设置到微信公众号设置里面的授权回调页面域名这个选项里面。微信官方对这个选项的说明如下:
关于网页授权回调域名的说明
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:,配置以后此域名下面的页面 、 都可以进行OAuth2.0鉴权。但 、 、 无法进行OAuth2.0鉴权
3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可
由此可见,这个规则极其严格。如果说我们的应用最终部署的时候只有一个域名,那么这种规则不会有什么问题;但是考虑到将来应用的复杂性,我们可能在应用设计之初就会对应用做拆分,然后不同的业务采用不同的二级域名来部署。比如一个带有交易的应用,你可能会把登录注册,交易管理和常规业务都独立出来,然后采用以下的方式来部署它们:
部署常规业务;
trade.your.com 部署交易管理的业务;
passport.your.com 部署登录注册的业务;
在这种模式下,如果集成微信登录和微信支付,前面说的授权回调页面域名的规则就会给应用带来问题。在这里:至少可以确认trade.your.com和passport.your.com都需要前面的介绍的用户微信授权,但是它们是两个不同的子域名,而且我们只有一个公众号;根据授权回调页面域名的原则,它只能用一个域名,并且只有回调地址的域名与该设置完全相同,才能成功发起微信授权,否则就会提示rediret_uri参数错误或者引发无法回调的问题。
那么这种情况该如何处理?
当下的解决方案是引入一个新的非常简单的应用来作为微信授权的代理服务,可以这么做:
1. 把公众号的网页授权接口域名设置成另外一个子域名,如proxy.your.com;
2. 然后把php_weixin_proxy里面的index.php部署到proxy.your.com
php_weixin_proxy下的index.php是一个很简单的php文件,你可以直接查看源码了解它的实现方式。因为当前项目的环境,我采用php来完成这个代理服务实现,实际上,你完全可以用任意平台语言来完成类似的功能。
当其它业务需要发起微信授权时,将授权请求先发到proxy.your.com,然后proxy.your.com会把这个请求转发到微信;
当用户同意授权后,proxy.your.com会收到微信的授权回调,并把回调结果(code、state参数)原封不动地再返回给最开始发起授权的业务。
唯一的区别在于,在不使用proxy.your.com的时候,你从应用发起微信授权的链接应该是这样的:
;redirect_uri=http%3A%2F%2Fpassport.your.com%2Fresponse_type=codescope=snsapi_loginstate=584bc87e11ff37492#wechat_redirect
用了proxy.your.com之后,这个授权链接就应该是这样的:
;redirect_uri=http%3A%2F%2Fpassport.your.com%2Flogin%2Fnotifyresponse_type=codescope=snsapi_basestate=584bc87e11ff37492device=pc
后面这个链接跟上面的比:
1. 后面的链接中的host变成了proxy.your.com,也就是代理的授权回调域名;
2. 后面的多了一个device参数,这个是必要的。因为微信pc端跟移动端的授权地址是不一样的,而后面的链接是发送个proxy.your.com的,所以需要多加个参数告诉它在转发给授权申请给微信的时候,是用PC端还是移动端的授权地址。
整体方案思路:
小结:
这个方案我测试过,是行的通的。虽然说引入了代理服务,增加了一次重定向操作,不过由于这个授权请求并不是所有请求都需要,所以实际上也不会对用户体验产生多大的影响,但是从架构上来说,它的好处很明显,能够配合着应用的拆分逻辑,集成同一个公众号的登录及支付功能,不必为每个子应用都单独申请一个公众号来开发了(这种方式从业务上来说也不合理,一个公司哪需要运营那么多公众号)。
快速实现微信公众号认证授权开发
最近做微信公众号和小程序相关的开发。大家都知道微信开发调试起来比较麻烦,因此推荐给大家一个内网穿透的工具NATTAPP。附上官网一分钟快速上手地址:.。在这个平台上设置好一个域名。通过此域名可以映射到本地。
微信开发之前首先要有一个经过备案的域名 比如
授权步走如下
放到项目resource/static 目录下
在浏览器上访问 会得到一串数字
返回公众号设置会看到网页授权域名上已经有值了。此时域名已经备案成功。
认证授权开发
demo 使用的是别人封装好的微信工具类可以实现快速开发
github地址:
新建url 配置类
yml 配置
编写授权接口
@GetMapping("/authorize")
public Stringauthorize(@RequestParam("returnUrl") String returnUrl) {
String url =urlConfig.getWechatMpAuthorize() +"/sell/wechat/userInfo"; //用户授权之后回调地址
//方法执行完会重定向
String redirectUrl =wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAUTH2_SCOPE_USER_INFO,
URLEncoder.encode(returnUrl));
return "redirect:" + redirectUrl;
}
授权成功之后回调地址接口
/**
* 当用户授权过之后会回调这个方法,这个方法可以获取用户的openid
**/
@GetMapping("/userInfo")
public StringuserInfo(@RequestParam("code") String code, @RequestParam("state") String returnUrl)throws Exception {
WxMpOAuth2AccessToken wxMpOAuth2AccessToken =new WxMpOAuth2AccessToken();
try {
wxMpOAuth2AccessToken =wxMpService.oauth2getAccessToken(code);
}catch (WxErrorException e) {
e.printStackTrace();
log.error("微信网页授权{}", e.getMessage());
throw new SellException(ResultEnum.WECHAT_MP_ERROR);
}
WxMpUser wxMpUser =wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
wxMpUser.getNickname();
String openId = wxMpOAuth2AccessToken.getOpenId();
return "redirect;" + returnUrl +"?openid=" + openId;
}
已上两个接口便完成了授权认证获取用户信息
测试
打开微信公众平台
APPID redirect_uri= REDIRECT_URI response_type=codescope= SCOPE state=STATE#wechat_redirect
加粗斜体的是需要替换的。
个人测试地址
你的appidredirect_uri=微信上备注的域名/sell/wechat/authorize?returnUrl=;response_type=codescope=snsapi_userinfostate=STATE#wechat_redirect
将这些地址发送到微信上的微信传输助手
在手机上点击地址就会回调预先设置好的授权地址
授权完成之后就会回调这个设置好的获取用户信息的接口
微信昵称和openId也已经获取到了
微信公众号网页授权域名指向别的域名
为了实现这个过程,首先要为应用申请一个微信公众号,并将应用最终部署的域名设置到微信公众号设置里面的授权回调页面域名这个选项里面。
微信公众号配置网页授权域名,在线等,求大神指教
在公众号后台设置一个授权回调页面域名,比如叫:wx.agency.com,我们可以称其为代理域名。
2.在wx.agency.com指向的网站根目录下部署一个index.php文件。
工作原理如下:
(1)当你的其他域名需要发起微信授权时,将授权请求先发到代理域名wx.agency.com,然后wx.agency.com会把这个请求转发到微信服务器;
(2)当用户同意授权后,wx.agency.com会收到微信的授权回调,并把回调结果(code、state参数)原封不动地再返回给最开始发起授权的域名。
微信公众号多域名授权怎么搞
方法/步骤
1
打开微信公众平台,输入账号密码登录后台。
2
点击【公众号设置】。
3
点击【功能设置】。
4
找到【网页授权域名】,点击旁边的【设置】。
5
在修改业务域名和JS接口域名时,已经上传过这个文件的话,那么请直接跳过这一步。如果还没上传的,直接点击文件下载,然后上传到服务器。
6
上传成功后,直接输入授权域名,点击【确认】即可。
关于公众号多域名授权源码和公众号网页授权域名的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » 公众号多域名授权源码(公众号网页授权域名)