wechat-0051,微信公众号,第三方登录—扫码绑定

声明:这边所谓的第三方登录,不是通过网页授权的方式,而是利用生成带参数的二维码,将微信号和平台账号绑定实现。如果你要做的是授权登录,请查看

https://blog.csdn.net/wrongyao/article/details/80229986

微信第三方登录功能实现,大致分为两个步骤,绑定和登录,下面先来了解一下绑定。

1、思路概括

注:先用平台用户的userid生成二维码,(详见生成带参数的二维码的帖子),微信扫码以后,需要关注微信公众号,首先请求会先到微信服务器,然后微信服务器会向我服务器推送消息,消息中有userid和openid(这个公众号下这个微信的唯一标识),然后我们可以将这个userid和openid存到关联表中,绑定成功。

1、利用0050的帖子我们可以生成带有userid的二维码,这边只附上简要代码

    @Overridepublic String getBindQrCode() {String sessionId = request.getRequestedSessionId();//获取当前登录的用户,注意要用sessionid做区分String loginJsonStr = redisService.get("loginJson&" + sessionId);StringBuffer sceneStr = new StringBuffer("bind&");if (StringUtils.isNotEmpty(loginJsonStr)) {LoginJson loginJson = GsonUtil.fromJson(loginJsonStr, LoginJson.class);SysUser sysUser = loginJson.getSysUser();sceneStr.append(sysUser.getSysUserId());}return getQcode(sceneStr.toString());}/*** 获取二维码** @param sceneStr* @return*/private String getQcode(String sceneStr) {String getTicketUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + AccessToken.ACCESS_TOKEN + "";// 临时整形参数值String ticketParam = "{\"expire_seconds\": 120, \"action_name\": \"QR_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"" + sceneStr + "\"}}}";String ticketStr = HttpRequest.post(getTicketUrl, ticketParam, null, Constant.RequestType.APPLICATION_JSON);System.out.println(ticketStr);Map<String, String> ticketMap = GsonUtil.fromJson(ticketStr, Map.class);String ticket = ticketMap.get("ticket");return "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + ticket;}

大致步骤:获取当前登录用户userid,用这个userid生成 scene_str

注意点:这边用的是redis做的缓存,不要用session,也可以用别的nosql数据库,具体原因会在下篇帖子登录的时候做详细说明。

2、将上述生成的二维码在合适的地方展示即可。注意是在登录之后。

3、扫码推送

扫码微信服务器向我服务器推送的报文

Ticket||gQHO7jwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyaXN0X2hHSlJmM2sxT1BfRXhyY2cAAgQ7P_hbAwR4AAAA
CreateTime||1541947203
EventKey||bind&1
Event||SCAN
ToUserName||gh_b348cb411e6c
FromUserName||oLXXD1ElSeoNELQP1EhUkvlRF9SM
MsgType||event

eventkey就是我们之前放入的scene_str

4、绑定

   @Override@Transactionalpublic String userBindWechat(Map<String, String> requestMap, long sysUserId) {String openId = requestMap.get("FromUserName");List<Condition> conditions = new ArrayList<>();conditions.add(new Condition(Connector.and, "open_id", Operator.equal, openId));List<SysWechat> sysWechats = sysWechatMapper.select(conditions, SysWechat.class);SysWechat sysWechat = sysWechats.get(0);long sysWechatId = sysWechat.getSysWechatId();conditions.clear();// 查询当前微信号是否已经绑定conditions.add(new Condition(Connector.and, "sys_wechat_id", Operator.equal, sysWechatId));List<SysUserWechat> sysUserWechats = sysUserWechatMapper.select(conditions, SysUserWechat.class);if (null != sysUserWechats && sysUserWechats.size() > 0) {return WechatUtil.replyTextMessage(requestMap.get("FromUserName"), requestMap.get("ToUserName"), wechatMessage.getWechatHaveBindedReplyMessage());}SysUserWechat sysUserWechat = new SysUserWechat();sysUserWechat.setSysUserId(sysUserId);sysUserWechat.setSysWechatId(sysWechatId);sysUserWechatMapper.insert(sysUserWechat);return WechatUtil.replyTextMessage(requestMap.get("FromUserName"), requestMap.get("ToUserName"), wechatMessage.getBindSuccessReplyMessage());}

大致步骤:根据微信服务器向我服务器推送的报文,获取userid,openid将这两个信息,关联起来即为绑定成功。

上述就是扫码绑定的大致思路,如有不妥的地方,欢迎大家斧正,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40311.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT创业项目 - 跟淘宝商城合作网赚项目,赚多少你说了算!

【项目介绍】&#xff1a; 使用淘宝商城的巨大流量销售产品或者服务。 【市场前景】&#xff1a; 淘宝网作为最大的B2C交易平台,淘宝商城又是淘宝网要点的发展对象&#xff0c;越来越多的年轻人喜爱在淘宝购买产品和服务。使用好淘宝的流量&#xff0c;赚钱十分简略。其实这是一…

微信公众号开发消息推送以及图文推送

今天给大家分享的关注公众号自动推送图文消息&#xff0c;以及做一个超牛逼的机器人。 先看看效果。 发错图了。。。这是我昨天开发的一款机器人chu了会骂人啥都不会了。我今天将它词库进行了更新和升级&#xff0c;接入了http://www.itpk.cn/ 机器人第三词库 先给你截图&…

【全网最简单】给朋友- 制作,微信公众号推送教程

简介&#xff1a; 前段时间&#xff0c;抖音非常火的微信公众号推送天气&#xff0c;生日&#xff0c;祝福等信息给女朋友专属推送&#xff0c;而且大部分都是Python写的&#xff0c;对于我来说&#xff0c;必须得整起&#xff0c;上java版本&#xff0c;到时候打个包&#xff…

小扎All in AIGC,连夜成立顶级产品团队

金磊 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT的火爆&#xff0c;终究是让Meta坐不住了。 这不&#xff0c;小扎&#xff08;扎克伯格&#xff09;连夜对外宣布了公司的大动作&#xff1a; 成立顶级产品团队&#xff0c;专注AIGC。 这个团队可以说是整合了全公司搞AIGC的人才…

MySQL 被 PG 干翻!最赚钱的开发语言是他?

出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013) Stack Overflow 发布了 2023 年开发者调查报告&#xff0c;据称共计超过 9 万名开发者参与了此次调查。 完整报告包含了受访开发者画像&#xff0c;以及关于开发技术、AI、职业、社区等方面的内容。本文主要介绍关于…

文心一言员工跳槽工资翻倍,猎头:百万年薪很正常

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 前段时间&#xff0c;国内外科技圈呈现出群雄逐“ChatGPT”的态势&#xff1a;谷歌官宣竞品 Bard 、微软发布 AI 驱动的新版 Bing 搜索引擎和 Edge 浏览器、百度官宣“文心一言”、网易…

AIGC分享交流平台、GPT-4、GPT实时联网、Claude

拥有无限畅谈的AI个人助理&#xff0c;提高效率和创造力&#xff0c;引领未来的智能生活&#xff1b; 不仅承载着最前沿的科技理念&#xff0c;更集成了对人工智能可能性的深度理解。 已支持基于GPT、Claude等主流大模型的对话内容生成、支持GPT联网查询实时信息&#xff1b;基…

2022年休闲游戏市场总结

在预测 2023 年之前&#xff0c;我们先回顾一下 2022 年。从上一年发生的事件中往往能看到未来趋势的影子&#xff0c;所以 2022 年的总结至关重要。 一、2022年总结回顾 1、流行游戏类型 回顾 2022 年&#xff0c;三种超休闲游戏表现最为突出&#xff1a; 跑酷游戏&#xff1a…

破解VProtect所有版本,PATCH HWID方式过注册

运行后&#xff1a; 本机机器码"195F9059606EEB4723128A216ED1426B”&#xff0c;在内存中搜索该字符串&#xff0c;可以得到3个地方&#xff0c;我这里以最后搜索到的地方为切入点&#xff0c; 为什么&#xff1f; 找到的3个地方都下内存断点判断&#xff0c;刚好最后找到…

新加坡国立大学学霸,《快乐机器学习》和《Python 从入门到入迷》作者,FRM,CAIA...

王的机器主理人 王圣元 (FRM, CAIA) 某加密货币公司 Head of Quant 冬海集团 SeaMoney 建模负责人 八方咨询 量化总监 新加坡国立大学金融数学硕士 新加坡国立大学量化金融学士 《快乐机器学习》的作者 《Python 从入门到入迷》的作者 第一本书 《快乐机器学习》 第二本书《Pyt…

瑞芯微推出RV1126性能/案例大评测

瑞芯微推出RV1126性能/案例大评测 目录 案例1&#xff1a;面部识别 案例2&#xff1a;图像分割 案例3&#xff1a;目标检测 一、车载录像性能提升一倍,支持8路1080p视频录像 二、内置2T独立NPU,AI效率更高 三、配备安防级ISP,确保夜拍高清晰度 四、存储空间扩容一倍,记录…

【SAT】

A Tutorial to SAT Solving 约束求解基础与应用4.10 1. SAT的概念 Propositional Satisfiability (SAT)&#xff1a;Given a propositional formula φ, test whether there is an assignment to the variables that makes φ true. 公式组成&#xff1a; 布尔变量x litera…

2023年SAT、ACT、AP、Alevel、IB考试时间表

2023年已经来临&#xff01;以下是2023年SAT、ACT、AP、A-Level、IB考试时间安排&#xff0c;早规划早备考&#xff0c;建议大家收藏&#xff01;2023 SAT从2023年开始&#xff0c;美国以外的所有SAT考试都将转为机考&#xff0c;美国SAT考试将在2024年全面转为机考。2023年一共…

13万亿邮储银行数字化转型之路

中国邮政储蓄可追溯至1919 年开办的邮政储金业务&#xff0c;至今已有百年历史。2007年 3月&#xff0c;在改革原邮政储蓄管理体制基础上&#xff0c;中国邮政储蓄银行有限责任公司挂牌成立。2012年1月&#xff0c;本行整体改制为股份有限公司。2016年9月本行在香港联交所挂牌上…

国内的Ubuntu镜像源|Ubuntu清华镜像源

国内的Ubuntu镜像源|Ubuntu清华镜像源 今天学习docker需要在线Ubuntu镜像&#xff0c;所以做了一个镜像下载地址笔记&#xff0c;方面以后的下载。 官方镜像下载访问地址&#xff1a; https://cn.ubuntu.com/download/alternative-downloads 网页拉到最下&#xff0c;找到chi…

AI生成答辩PPT教程

一&#xff1a;通过”AI帮个忙“网站的PPT大纲生成器生成大纲 1 AI帮个忙 | 多功能AI小帮手点击网站进入 1 输入主题&#xff08;论文名&#xff09;会生成大纲 2 复制全部内容 二&#xff1a;通过大纲在AI生成PPT网站进行生成内容 1.通过网站生成&#xff0c;下面提供两种…

AI创作之如何使用Stable Diffusion AI 将自己变成皮克斯动画角色 (教程含完整操作步骤)

无论您想成为下一个伍迪、下一个巴斯光年,还是将您的鱼变成下一个尼莫,Stable Diffusion都能实现。使用这种潜在的文本到图像扩散模型,您只需一个简单的文本提示,就可以将自己变成任何皮克斯角色的样子。 在本文中,我将向您展示如何在本地 PC 上运行 Stable Diffusion,并…

PPT绘图之AI助力论文图

PPT绘图之AI助力论文图 前言一、工具准备二、PPT绘图导出1.绘制2.AI助力后期处理 总结 前言 之前为了在边界的PPT里绘论文图&#xff0c;修改了office注册表&#xff0c;将导出分辨率设置为600dpi&#xff0c;但是该方法有一个缺点&#xff1a;需要提前将页面调整到合适大小&am…

用AI轻松修图!教你下载并使用Adobe Photoshop (Beta)智能化软件

节省时间&#xff0c;提高效率&#xff01;使用Adobe Photoshop (Beta)智能化软件快速修图。 一&#xff0c;首先下载Adobe Creative Cloud 百度网盘链接&#xff1a;https://pan.baidu.com/s/1aNVLllhvBrj40i3wtuvAAA?pwdw11s 提取码&#xff1a;w11s 二&#xff0c;下载…

用人工智能帮我做PPT啦,试试chatPPT

首先进入网站 https://chat-ppt.com/ 然后尝试输入一段描述&#xff0c;让它给我制作一份PPT 好吧&#xff0c;等了半天啥也没出来 好吧&#xff0c;在我内心吐槽的时候&#xff0c;它出来了一些内容&#xff0c;如下&#xff1a; 完整的PPT内容可以下载查看&#xff0c;如左…