wx.getUserProfile使用方法

2023-11-08

 1、单独使用

    wx.getUserProfile({
            desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
            success: (res) => {
                console.log(res)
                this.setData({
                    userInfo: res.userInfo,
                    hasUserInfo: true
                })
            }
        })

2、与wx.login混合使用

//点击的一种方法 方法名
getUserProfile{
    wx.getUserProfile({
        desc: '用于完善资料',
        success: function (userInfoRes) {
            //调用 wx.login 登录接口
            wx.login({
                success: function (res) {
                    //换取openid & session_key
                    wx.request({
                        url: wx.getStorageSync('domainName') + '/WxOpen/OnLogin',
                        method: 'POST',
                        header: { 'content-type': 'application/x-www-form-urlencoded' },
                        data: {
                            code: res.code
                        },
                        success: function (json) {
                            var result = json.data;
                            if (result.success) {
                                wx.setStorageSync('sessionId', result.sessionId);
                                //校验
                                wx.request({
                                    url: wx.getStorageSync('domainName') + '/WxOpen/CheckWxOpenSignature',
                                    method: 'POST',
                                    header: { 'content-type': 'application/x-www-form-urlencoded' },
                                    data: {
                                        sessionId: result.sessionId,//wx.getStorageSync('sessionId'),
                                        rawData: userInfoRes.rawData,
                                        signature: userInfoRes.signature
                                    },
                                    success: function (json) {
                                        console.log(json.data);
                                    }
                                });

                                //解密数据(建议放到校验success回调函数中,此处仅为演示)
                                wx.request({
                                    url: wx.getStorageSync('domainName') + '/WxOpen/DecodeEncryptedData',
                                    method: 'POST',
                                    header: { 'content-type': 'application/x-www-form-urlencoded' },
                                    data: {
                                        'type': "userInfo",
                                        sessionId: result.sessionId,//wx.getStorageSync('sessionId'),
                                        encryptedData: userInfoRes.encryptedData,
                                        iv: userInfoRes.iv
                                    },
                                    success: function (json) {
                                        console.log('数据解密:', json.data);
                                    }
                                });

                            } else {
                                console.log('储存session失败!', json);
                            }
                        }
                    })
                }
            })
        }
    });
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wx.getUserProfile使用方法 的相关文章

  • Next.js - 如何使用 Provider 来包装路由并使用 Context 和 Hooks

    我在 create react app 中编写了类似于以下的代码 我想知道 next js 的等效代码 下面的代码是我尝试拥有一个可用于所有页面的全局上下文 提供者包装链接 我没有收到任何错误 问题出在里面about当我期望上下文状态时 页
  • Canvas drawImage 内联 svg 在 Firefox 上不起作用

    这是一个例子 它采用 svg 并将其转换为画布 http jsfiddle net Na6X5 944 http jsfiddle net Na6X5 944 var can document getElementById canvas1
  • jQuery Mobile:$(...).listview 不是函数

    我正在尝试在 UL 中动态插入 LI 元素后刷新 jQuery Mobile 中的列表视图 每当我尝试 myUL listview refresh 在控制台上我收到错误 未捕获的类型错误 listview 不是函数 我该如何解决这个问题 确
  • 获取预转译源代码的 Karma 代码覆盖率

    我使用 Karma 来运行测试 使用 webpack 来捆绑文件 并使用 babel 进行 es6 gt es5 转译 我已经运行了测试并生成了代码覆盖率 但代码覆盖率数字是针对转译后的源文件的 是否有办法获得原始源文件的代码覆盖率 我尝试
  • 在复选框内映射复选框 ReactJS

    我有一个函数 一旦主复选框被选中 就会触发子复选框 并且所有这些复选框都是从 JSON 映射的 主复选框 最高级别 及其下面的所有子复选框 第二级别 都会在单击时显示 并且效果很好 我想要显示的是单击时主复选框 第三级别 的子复选框2 级项
  • 使用 jQuery 触发真实事件

    看来 jQuery 的trigger 仅运行与 jQuery 绑定的事件处理程序 我有一些使用本机浏览器事件绑定的模块 使用来自的代码https stackoverflow com a 2676527 https stackoverflow
  • 在 TypeScript 中迭代对象的键和值

    在纯 JavaScript 中 我们可以迭代对象属性和值 如下所示 const values Object keys obj map key gt obj key 在 TypeScript 中 此语法是错误的 因为 TS 编译器显示以下消息
  • 在 PHP 中合并文件块

    出于教育目的 我想创建文件块上传 你们怎么知道所有块何时上传 我试图从temp并重命名它们 使它们按正确的顺序排列 然后与最后一个块将它们合并在一起 然而 我猜最后发送的并不是最后收到的 所以fopen on chunks 失败 因为它们尚
  • 如何在 React 组件中使用 CDN

    我正在尝试使用基于 D3 构建的库 称为 Greuler 来动态渲染图形 它的 npm 包似乎已损坏 当我改用 Greuler CDN 时 index html 中的测试图终于起作用了 但是 我正在开发一个 React 应用程序 并且我希望
  • Elasticsearch 前缀匹配消失且未添加 (QueryString)

    结转自Elasticsearch QueryStrings 部分匹配 NOT 查询 https stackoverflow com questions 40100006 elasticsearch querystrings partiall
  • 如何让 jQuery 选择带有 . (句号)在他们的身份证件中?

    给定以下类和控制器操作方法 public School public Int32 ID get set publig String Name get set public Address Address get set public cla
  • 在 Graal.js 中使用 java 类

    使用 Graal js 如何将 java 类导入到 JS 脚本中 以下代码适用于 Nashorn JJS 但不适用于 Graal js 因为没有Java type 在graal中 我需要在某个时候调用truffle吗 var ArrayLi
  • 将焦点和光标设置到文本输入字段/字符串 w 的末尾。 Jquery [重复]

    这个问题在这里已经有答案了 我有以下函数 将选择器添加到搜索输入作为高级选项 就像堆栈溢出高级搜索一样 当您单击要搜索的内容时 它会添加一个前缀 请参阅下面的 Jquery
  • 在 Photoshop 中使用 javascript 修改文本项的内容

    我知道如何使用这样的代码在 Photoshop 中设置文本项的内容 var al doc activeLayer if al kind LayerKind TEXT get the textItem var ti al textItem c
  • 如何检查浏览器中消失的元素?

    How can I inspect an element which disappears when my mouse moves away 我不知道它的 ID 类别或其他任何信息 但想检查它 我尝试过的解决方案 在控制台内运行 jQuer
  • 点击事件的事件处理程序自动触发 - jQuery [重复]

    这个问题在这里已经有答案了 可能的重复 为什么单击事件处理程序会在页面加载后立即触发 https stackoverflow com questions 7102413 why does click event handler fire i
  • 在单页应用程序上重用 Google Maps API 实例

    假设我有一个单页应用程序 Angular JS 应用程序 并且我在元素 id 上绘制一个 Google 地图实例googleMap var mapInstance new google maps Map document getElemen
  • Angular CDK Overlay,更改默认覆盖容器

    有没有办法改变OverlayContainer 我创建了一个工具提示组件 但有时我想将叠加层附加到特定元素 默认情况下 叠加层附加到文档正文 以下是我创建叠加层的方法 private initOverlay void const posit
  • 网站可以检测您何时将 Selenium 与 chromedriver 结合使用吗?

    我一直在使用 Chromedriver 测试 Selenium 我注意到有些页面可以检测到您正在使用 Selenium 即使根本没有自动化 即使我只是通过 Selenium 使用 Chrome 手动浏览 Xephyr https en wi
  • localStorage 获取 NULL?

    我不知道为什么 因为我之前已经这样做过并且工作正常 我认为这可能是因为浏览器问题 错误 localStorage setItem foo bar alert localStorage getItem foo 我使用的是 Firefox 3

随机推荐

  • 快捷给UE4项目改名

    很多时候我们对一个工程随意地起了一个随意的名字 这很常见 如果我们想要后面修改整个项目的名字 似乎应该是一件简单的事情 但是这个过程充满了陷阱 如果做错了 您可能会无意间破坏您的项目 手动的做当然是一件非常困难的事情 尤其是对于C 的项目
  • 积分商城游戏化运营?积分游戏应该如何正确设置

    积分商城是一种可以通用获得积分在其中获得礼品的线上商城 这种商城可以起到拉取新用户的作用 帮助企业以及商家带来更多的新用户 因此 一些企业和商家在进行营销的时候都选择这种方法 一般情况下 企业和商家搭建了自己的积分商城之后 就会设置一些积分
  • js 数组过滤操作 过滤两组数组相同的 id

    过滤两组数组相同的 id const arr1 id 145 firstname dave lastname jones id 135 firstname mike lastname williams id 148 firstname bo
  • Zookeeper 的下载安装

    文章目录 一 下载 二 解压 1 在解压后的 bin 目录下 新增两个文件夹 2 在 conf 下 将 zoo sample cfg 复制一份 重命名为 zoo cfg 3 修改 zoo cfg 三 测试 1 启动服务端 2 启动客户端 3
  • Git下载和Git常用命令

    下载git 要下载和安装 Git 请按照以下步骤进行操作 1 访问官方网站 打开 Git 官方网站 https git scm com 2 下载 Git 安装程序 3 选择适用于你的操作系统的下载链接 Git 支持多个操作系统 包括 Win
  • SpringFramework核心技术一(IOC:基于Java的容器配置)

    Bean和 Configuration Spring新的Java配置支持中的中心构件是 Configuration注释类和 Bean注释方法 一 基本概念 Bean和 Configuration Spring新的Java配置支持中的中心构件
  • Nginx下同域部署多个Vue项目(history路由模式),报404、500错误

    主要内容 一 环境 二 问题描述 三 问题解决 1 修改vue项目中的vue config js文件 2 修改Nginx的nginx conf配置文件 3 Nginx目录结构 一 环境 系统 windows nginx 1 20 2 nod
  • 整理 qt opengl,自己的基础框架 —— 绘制一个彩色三角形

    网上很多都是QGLWidget例子 而cube 虽然说明文档上说再简单不过了 但是对于一个0基础的来说 还是像看天书一样 opengl的例子还有一个hellgl2 看着比较简单 但是那个log生成的代码使用了QVector3D显得有点复杂
  • laravel 操作mysql数据库的三种方式

    一 使用DB门面操作 需要引入 DB类 Illuminate Support Facades DB 查询数据库记录 DB select SQL语句 DB select select from stu from 以数组形式返回结果 增加数据库
  • 使整个网页变黑白色(灰色)的特效代码

    全站CSS代码 html filter progid DXImageTransform Microsoft BasicImage grayscale 1 使用方法 这段代码可以变网页为黑白 将代码加到CSS最顶端就可以实现素装 建议全国站长
  • 到现在才理解高斯分布的均值与方差为什么是0和1

    问题的来源 如图所示 为什么标准正态分布的期望值0 方差为1呢 如果是针对x变量 期望值为0可以理解 那么方差为1怎么理解呢 显然不可能为1 如果针对y变量 显然所有值都大于0 怎么会期望值会大于0呢 先看数学期望的定义 期望值本身是对所有
  • 网络性能评估

    在Linux中常见的网络性能指标如下 l 带宽 表示链路的最大传输速率 单位是b s 比特 秒 在位服务器选网卡时 带宽就是最核心的参考指标 常用的带宽有1000M 10G 40G 100G等 网络带宽测试 测试的不是带宽 而是网络吞吐量
  • pycharm激活(JetBrains IDEA 系列产品通用xx方法(license server))

    http xclient info a f0b9738a 36fd 8a97 a966 0d3db497092d html 1 打开激活窗口 2 选择 Activate new license with License server 用li
  • es6 对象的解构用法

    const forms username 王五 password paassword gender 0 result token 1212dsfdasdasdfadasdasdasd id ididididiidid const usern
  • Unity StrangeIOC傻瓜式使用教程(dispatch用法)

    公司用的框架是StrangeIOC 开始完全不知道怎么用 打断点也跟踪不到代码 后来网上各种寻找详解 但是说的都过于高大上 全是专业名词 依赖注入等 完全不适合我这种新人小白理解 最后在自己的各种实践下 总算摸透了其中dispatch用法
  • all query identities do not appear in gallery

    问题描述 在reid strong baslline使用Market 1501数据集训练reid模型后 使用自己的数据集仿照Market 1501制作相同格式的数据集 训练时报如下错误 查看原因 Martet 1501中Query和gall
  • python中安装完virtualenv,创建虚拟环境时报错'virtualenv' 不是内部或外部命令,也不是可运行的程序

    创建虚拟环境包时会报 virtualenv 不是内部或外部命令 也不是可运行的程序 错误 首先排除是否是单词拼写错误 在网上查了好久都没有自己出现的那种情况 可以成功安装 通过pip list 查询时显示安装成功 但会有两行黄色字 大致意思
  • gradle各版本下载地址

    http blog csdn net wangqjpp article details 52218314 gradle各版本下载地址 http services gradle org distributions 以前都是手动下载gradle
  • C语言的整型溢出问题

    整型溢出有点老生常谈了 bla bla bla 但似乎没有引起多少人的重视 整型溢出会有可能导致缓冲区溢出 缓冲区溢出会导致各种黑客攻击 比如最近OpenSSL的heartbleed事件 就是一个buffer overread的事件 在这里
  • wx.getUserProfile使用方法

    1 单独使用 wx getUserProfile desc 展示用户信息 声明获取用户个人信息后的用途 后续会展示在弹窗中 请谨慎填写 success res gt console log res this setData userInfo