微信的openid

article/2025/10/23 3:32:54

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3
微信h5静默、非静默授权获取用户openId的方法和步骤:
一、openId是什么?
openId是用户在当前公众号下的唯一标识(‘身份证’),就是说通过这个openId,就能区分在这个公众号下具体是哪个用户。

二、openId有什么用?

假如用户A在当前公众号下购买了一件商品,用户的下单信息肯定要存储到后台数据库,那根据什么进行存储呢?openId是用户在当前公众号下的唯一标识,通过openId和用户的下单购买信息进行键值对的数据绑定。那么我要查询该用户购买过什么商品,就能够通过openId去查询,并且数据是唯一的,不会和另外的用户数据有冲突。

拓展:UnionID:一个商家或公司可能会有多个公众号,假如用户A同时都关注了这个公司下面的三个公众号,那么这个用户就会有三个openId(一个公众号就对应一个openID)。如果作为开发者的我们,要对这个用户在这三个公众号下消费的数据进行汇总,我怎么获取到这三份数据(同一用户的)?答案是 UnionId,微信开发者文档:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。就是说如果要获取用户在同一公司不同公众号下的数据,后台表结构不但要关联openId,还要关联UnionId。

三、怎么获取openId?

(一)登录微信公众平台后台获取公众号的AppId,设置回调地址。
在这里插入图片描述
回调地址设置页面向导:开发>接口权限>网页服务>网页授权>修改。开发的项目需要放到已经解析好服务器域名的服务器下,同时把Mp***.text文件放到服务器根目录下,此时你的服务器必须能联通外网也就是有公网IP,并且80端口是打开的,可以使用阿里云等服务器,默认配置就可以了。
在这里插入图片描述
(二)根据开发需要,静默授权还是非静默授权

① 静默授权:snsapi_base,没有弹窗,只能获取用户的openId。

②非静默授权:snsapi_userinfo,有弹框弹出需要用户手动点击确认授权。可以获取openId,用户的头像、昵称等
在这里插入图片描述
(三)前端代码,配置的参数要一一对应,获取code,并调用后台接口,把code传给后台
在这里插入图片描述
redirect_uri,这个的意思是:授权完成后再重新回到当前页面(又刷新了一次页面)

getUrlParam的方法,可以百度下,就是获取页面路径的某个字段所对应的参数。
在这里插入图片描述
在这里插入图片描述
如果配置参数一一对应,那么此时已经通过回调地址刷新页面后,你就会看到在地址栏中的code了。
四)前端截取地址栏中的code后通过调接口把code传给后台,后台通过code获取openId和用户头像昵称等信息并返回给前端

为什么,前端不能一起把获取code和获取openId的操作一并做了,还要请求后台,让后台获取openId?

(五)后台通过 code、AppSecret(公众号平台后台取得)请求微信链接获取openId
在这里插入图片描述
在这里插入图片描述
前端具体代码如下,可复制(记得把文中的 window.APPID改为自己公众号的APPID)

<script>
import GetUrlParam from '@/assets/js/util/getUrlParam.js'
export default {name: 'Index',data () {return {}},created () {this.getCode()},methods: {getCode () { // 非静默授权,第一次有弹框const code = GetUrlParam('code') // 截取路径中的code,如果没有就去微信授权,如果已经获取到了就直接传code给后台获取openIdconst local = window.location.hrefif (code == null || code === '') {window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + window.APPID + '&redirect_uri=' + encodeURIComponent(local) + '&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect'} else {this.getOpenId(code) //把code传给后台获取用户信息}},getOpenId (code) { // 通过code获取 openId等用户信息,/api/user/wechat/login 为后台接口let _this = thisthis.$http.post('/api/user/wechat/login', {code: code}).then((res) => {let datas = res.dataif (datas.code === 0 ) {console.log('成功')}}).catch((error) => {console.log(error)})}}
}
</script>

http://chatgpt.dhexx.cn/article/tCwslEJS.shtml

相关文章

微信小程序获取openid

获取openId (用户唯一标识)和session_key 第一步&#xff0c;获取code 调用wx.login(OBJECT) 获取登录凭证&#xff08;code&#xff09;进而换取用户登录态信息&#xff0c;包括用户的唯一标识&#xff08;openid&#xff09; 及本次登录的 会话密钥&#xff08;session_key…

微信公众号开发:如何获取openId(最简单的方式)

最近的项目涉及到微信公众号的开发&#xff0c;必然要涉及到微信公众号的openId的获取&#xff0c;以及appId的获取&#xff0c;appId的获取很简单&#xff0c;但是如何才能获取到openId呢&#xff1f; 我找到了一种最简单的获取方法&#xff0c;整理如下&#xff1a; 注册自己…

如何获取用户的微信openid

如何获取用户的微信openid 如何获取用户的微信openid &#xff08;1&#xff09;首先登陆微信公众号后台&#xff08;确保你有登陆微信后台的权限才可以哦&#xff09;&#xff08;2&#xff09;登陆后点击左侧“用户管理”&#xff0c;然后找到你要查的用户&#xff0c;右击头…

OAuth 2.0 和 OpenID Connect 的基本原理和区别(干货)

基本原理 首先要明确OAuth OpenID Connect学习起来比较难&#xff0c;对谁都会比较难&#xff0c;所以心态要放好&#xff0c;因为有很多专业属于、缩写等等&#xff0c;你要是之前不知道&#xff0c;就基本上很难看懂。而且OAuth和OpenID Connect不像HTTP这样的协议&#xff…

uni-app 获取用户的openID和基本信息

目录 一、获取用户的openId1、前提条件&#xff1a;找到小程序的id和密钥2、代码展示3、结果 二、获取用户的基本信息1、API说明2、代码展示2、结果 一、获取用户的openId 1、前提条件&#xff1a;找到小程序的id和密钥 在微信公众平台&#xff0c;https://mp.weixin.qq.com/…

OIDC(OpenId Connect)身份认证

1 什么是OIDC&#xff1f; 看一下官方的介绍&#xff08;http://openid.net/connect/&#xff09;&#xff1a; OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It allows Clients to verify the identity of the End-User based on the a…

openID及unionID的区别

前言&#xff1a;开发小程序和微信公众号之前&#xff0c;一定要充分理解openID及unionID的区别&#xff0c;唯一标识很重要&#xff0c;免得后期填坑 一、公众号openID和小程序openID说明&#xff1a; 为了识别用户&#xff0c;每个用户针对每个公众号或小程序等应用会产生一…

微信小程序获取用户openid(详解)

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识快速建立小程序内的用户体系 然而因为小程序中的openid不可以直接使用需要用code(登录凭证)去换取openid 获取openid的思路 获取openid首先需要调用小程序的login方法获取小程序的登录凭证code,然后使…

如何获取微信用户openid

&#x1f4d2;博客首页&#xff1a;崇尚学技术的科班人 小肖来了&#x1f3c7; &#x1f363;今天给大家带来的文章是《如何获取微信用户openid》&#x1f363; &#x1f363;希望各位小伙伴们能够耐心的读完这篇文章&#x1f363; &#x1f64f;博主也在学习阶段&#xff0c;如…

openID相关知识

1.openID是什么 openID是微信平台推出的&#xff0c;每个用户在每个公众号的用户标志。&#xff08;https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html&#xff09; openID目前是由28位加密过后的字符串组成。 再次说明是&…

微信openid你了解多少?appid,appsecert又是啥?

openid这个东西有点泛。百度搜到的都说这个东西可作为微信用户唯一的ID&#xff0c;然而很多都被认为每个微信号只能有且只有一个openid. 下面澄清一下这个openid 微信号&#xff1a;这个大家都可以理解&#xff0c;每个人都有一个微信号&#xff0c;不会重复。修改一次后也…

OpenID简介

一、OpenID简介 OpenId是一个以用户为中心的数字身份识别框架&#xff0c;它具有开放、分散、自由等特性。OpenId的创建是基于这样一个 概念&#xff1a;我们可以通过URI&#xff08;或者URL网址&#xff09;来识别一个网站。同样&#xff0c;我们也可以通过这样的方式来识别一…

什么是OpenID?OpenID概念、原理和案例

这几周有关OpenID的新闻不断&#xff1a;Google Profile变身OpenID、WordPress上的Google Friend Connect插件实现OpenID留言、OpenID先驱JanRain获得325万美元风险投资、雅虎将全面支持Facebook Connect服务…… 正好前段时间看了一些OpenID的资料&#xff0c;希望下面的内容可…

window.onblur 和 window.onfocus

2019独角兽企业重金招聘Python工程师标准>>> 在你浏览其他窗口页面、或是浏览器最小化、又或是点击了其他程序等等&#xff0c;都算是浏览器窗口失去焦点&#xff0c;那么 window.onblur 事件就会触发。 当你浏览别的窗口或者别的程序,直接点就是当你的窗口失去焦点…

html中onblur属性,html中的onfocus和onblur是什么属性?怎么使用?

html中的onfocus和onblur是什么属性&#xff1f;怎么使用&#xff1f;本篇文章就给大家介绍onfocus属性和onblur属性是什么&#xff0c;让大家了解onfocus属性和onblur属性的简单用法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你们有所帮助。 …

事件绑定(onclick,onfocus,onblur)

事件绑定(onclick,onfocus,onblur) 学习路线&#xff1a;JavaScript基础语法&#xff08;输出语句&#xff09;->JavaScript基础语法&#xff08;变量&#xff09;->JavaScript基础语法&#xff08;数据类型&#xff09;->JavaScript基础语法&#xff08;运算符&…

js——input获取焦点-onfocus和失去焦点-onblur 自动获取焦点-autofocus=autofocus onchange 事件会在域的内容改变时发生

js——input获取焦点-onfocus和失去焦点-onblur & 自动获取焦点-autofocus“autofocus” & onchange 事件会在域的内容改变时发生 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"…

js中的focus()

eg&#xff1a; function submitForm(){ var title $("#title").val(); var content ue.getContent(); if(title.length>100){ $.messager.alert("提示","<br>公告标题超过字数限制!","info"); $("#titl…

HTML onfocus (获得焦点)和 onblur (失去焦点)

HTML onfocus 事件属性 定义和用法 onfocus 属性在元素获得焦点时触发。 onfocus 常用于 <input>、<select> 以及 <a>. 提示&#xff1a;onfocus 属性与 onblur 属性相反。 注释&#xff1a;onfocus 属性不适用于以下元素&#xff1a;<base>、<bdo&…

multisim14

multisim14 安装之后&#xff0c;打开却无法使用&#xff0c;提示 不知道为什么会出现这种情况&#xff0c;望大神告知