微信开放平台扫码登录
微信开放平台扫码登录的功能只有已经认证过的微信公众号才可以使用,很多学习微信的同学可能没办法使用这个功能,但是别担心,以下网址中有很多账号可以使用:【想要获取更多公众账号可以关注微信公众号:小D课堂】
https://mp.weixin.qq.com/s?__biz=MzUyMDg1MDE2MA%3D%3D&idx=2&mid=2247483689&sn=55ecd5f4d00dd6de029756902459fd2b
应用一: 应用名称:漫道 AppID:wx2a6cf9373f278ed2 Appsecret:b32af04d9062ebc44b3f5d8b87a5a48e 回调域名配置:testxdclass.tunnel.qydev.com |
应用二: 应用名称:狼途 AppID:wx025575eac69a2d5b Appsecret:72024309d9751d33e97e9d2a66e89944 回调域名配置:test16web.tunnel.qydev.com |
首先一个问题就是项目的域名和微信授权域名不一致,没办法把自己的域名设置到,比如我的项目域名为 t238997p11.qicp.vip ,那么希望的是,当访问微信后台授权的域名时,能自动跳转到我自己的域名,这样就能运行后台代码。
-----------------------------------------------------------------------------------------------------------------------
以我自己使用的账号为例:
openAppId: wx277996c4d2772104 #开放平台appid
openAppSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxx #开发平台appSecret
wechatOpenAuthorize: testdev.tunnel.qydev.com #回调域名
一、第一步:安装nginx进行代理
1、下载安装nginx :官方网址:http://nginx.org/en/download.html
点击进入官网,下载稳定版
解压后点击nginx.exe,打开任务管理器,看到如下图说明nginx已开启
2、利用nginx进行代理,使得当访问 testdev.tunnel.qydev.com 这个授权域名的时候,能够访问到我自己的后台代码。
即,当访问 http://testdev.tunnel.qydev.com 【80端口省略不写】时等价于访问127.0.0.1:8080
(1)配置nginx.conf
注意:A:proxy_pass 代理的是upstream中的内容,并且upstream后面的名称一定要与proxy_pass 后面的一致
B:监听的端口号一定是80,如果80端口已被占用一定要先解除占用
C:server_name 是微信的已授权域名
upstream sell
{
server 127.0.0.1:8080;
}
server {
listen 80;
server_name testdev.tunnel.qydev.com;
location / {
proxy_pass http://sell;
}
}
(2)修改hosts文件(在C:\Windows\System32\drivers\etc目录下)
添加:127.0.0.1 testdev.tunnel.qydev.com
二、SpringBoot后台代码
@Controller
@RequestMapping("/wechat")
@Slf4j
public class WechatController {@Autowiredprivate WxMpService wxOpenService;/*** 微信开放平台授权登录** @param returnUrl* @return*///访问:http://127.0.0.1:8080/sell/wechat/qrAuthorize?returnUrl=http://www.imooc.com@GetMapping("/qrAuthorize")public String qrAuthorize(@RequestParam("returnUrl") String returnUrl){String url = "http://testdev.tunnel.qydev.com/sell/wechat/qrUserInfo";String redirectUrl = wxOpenService.buildQrConnectUrl(url,WxConsts.QrConnectScope.SNSAPI_LOGIN, URLEncoder.encode(returnUrl));log.info("微信开放平台授权获取code,redirectUrl={}",redirectUrl);return "redirect:" + redirectUrl;}/*** 微信开放平台扫码获取openid** @param code* @param returnUrl* @return*/@GetMapping("/qrUserInfo")public String qrUserInfo(@RequestParam("code") String code,@RequestParam("state") String returnUrl){WxMpOAuth2AccessToken wxMpOAuth2AccessToken = new WxMpOAuth2AccessToken();try {wxMpOAuth2AccessToken = wxOpenService.oauth2getAccessToken(code);} catch (WxErrorException e) {log.info("[微信网页授权] {}",e);throw new SellException(ResultEnum.WECHAT_MP_ERROR.getCode(),e.getError().getErrorMsg());}//获取openidString openId = wxMpOAuth2AccessToken.getOpenId();return "redirect:" + returnUrl+"?openid=" + openId;}
}
三、结果
访问: http://127.0.0.1:8080/sell/wechat/qrAuthorize?returnUrl=http://www.imooc.com
出现如下图所示,地址栏变为:https://open.weixin.qq.com/connect/qrconnect?appid=wx277996c4d2772104&redirect_uri=http%3A%2F%2Ftestdev.tunnel.qydev.com%2Fsell%2Fwechat%2FqrUserInfo&response_type=code&scope=snsapi_login&state=http%3A%2F%2Fwww.imooc.com#wechat_redirect
微信扫码后跳转到returnUrl后的回调地址 http://www.imooc.com,并返回openid
地址栏变为 https://www.imooc.com/?openid=XXXXXJGsKKpEqGMEt7V7XXXXXX
按照上述步骤微信扫码登录就实现了!!如果还有什么问题欢迎指教!!
微信开放平台参考手册:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN
微信开放平台扫码登录相关推荐
- python获取微信用户基本信息_微信开放平台扫码登录获取用户基本信息!附可用demo...
微信开放平台提供了网站扫码登录的接口,用于获取用户基本信息(头像,昵称)方便网站快速接入微信登录,快捷登录.需要使用登录接口,需要成为微信开放平台认证开发者(300元)才可以获得这个接口权限. 准备工 ...
- php源码微信快速登陆,PHP实现微信开放平台扫码登陆源码下载
一.首先到微信开放平台申请https://open.weixin.qq.com/ 获取到appid和APPSECRET,前台显示页面以下 var obj = new WxLogin({ id: &qu ...
- 微信开放平台扫码登陆
微信授权扫码登陆 微信开放平台提供了两种登陆方式,一种是会跳转到一个很丑很丑,只有一个二维码的界面里: 另一种则是可以自己定制化的(二维码内嵌到自己网站内的方式) 第一种方式的完成非常简单,但是第二种 ...
- Vue 前端对接第三方平台扫码登录(Oauth2)
本方式是用 Oauth2 的方式实现扫码登录的,其中省略了不少不重要的代码 1.编写页面样式,设置扫码链接入口 1.页面样式不多说,参考一下: <el-dropdown><span ...
- 微信开放平台下,公众号获取到用户的unionId(非三方平台模式)
实现功能: 通过扫公众号的二维码获取到用户的unionId 实现步骤: 1.申请一个微信开放平台 步骤参考:https://jingyan.baidu.com/article/8275fc8670af ...
- Django使用Social-Auth实现微信第三方网站扫码登录
前言 之前让网页公司制作新官网的时候规划有第三方账号的登录功能,但由于当时的一些开放平台申请步骤比较繁琐(尤其是微信开放平台),所以一直拖延着,到了最近只能自己添加相关的功能. 由于是刚接触Pytho ...
- Django实现微信第三方网站扫码登录
前言 之前让网页公司制作新官网的时候规划有第三方账号的登录功能,但由于当时的一些开放平台申请步骤比较繁琐(尤其是微信开放平台),所以一直拖延着,到了最近只能自己添加相关的功能. 由于是刚接触Pytho ...
- 手把手教程用Java实现微信公众号扫码登录功能
文章目录 前言 一.环境准备 二.使用步骤 1. 使用微信工具包 2. 创建数据表 3. 登录页面代码逻辑 4. 验证微信公众号登录 总结 前言 微信现今是我们必不可少的社交工具了,围绕微信这个生态实 ...
- 实现支持多公众号的微信公众号扫码登录服务
实现支持多公众号的微信公众号扫码登录服务 最近,在公司的通行证项目开发过程中,需求方提出了支持微信公众号扫码登录,并且可以支持多公众号接入的需求.研究了一下微信公众号的开发文档,实现微信公众号扫码登录 ...
- 平台扫码使用微信登录
关联微信登录 首先获取微信APPid 前言 一.首先获取微信APPid 二.使用步骤 1.前端页面加入微信 2.后台写入action 总结 第一次发博客,就发一篇关于平台互联微信登录. 首先获取微信A ...
最新文章
- NotFoundError: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for xxx
- MSN都出8.1啦!
- Android Studio 3.4增可视化资源管理工具 可管理和预览项目资源
- twitter 数据集处理_Twitter数据清理和数据科学预处理
- 【Linux进程、线程、任务调度】四多核下负载均衡 中断负载均衡,RPS软中断负载均衡 cgroups与CPU资源分群分配 Linux为什么不是硬实时 preempt-rt对Linux实时性的改造
- Win32中如何判断多个键同时按下
- 应邀ITGeGe在线教育社区嵌入式基础开发讲师
- Bash脚本15分钟进阶教程-转
- AspNetPager分页控件样式
- 拓端tecdat|R语言做复杂金融产品的几何布朗运动的模拟
- Oracle与MySQL的几点区别
- U盘快捷方式病毒修复
- linux文件系统ram,Linux常用文件系统概述-RAM篇
- 互联网移动支付存在的安全风险和对策
- 【PYTHON】 Pilow 将半透明图片绘制到图片中
- python运动学仿真的意义_运动学仿真和动力学仿真有什么区别和联系?
- html css 基本词汇
- Ubuntu SSE指令集 编程实例---复数乘法与共轭乘法
- PBR来龙去脉篇三:一些知识储备
- JD旗舰店店铺商品详情接口代码对接教程