微信小程序授权获取用户详细信息实例

本文主要和大家介绍微信小程序授权获取用户详细信息openid的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家。

小程序获取用户的头像昵称openid之类

微信小程序授权获取用户详细信息实例

第一种使用wx.getUserInfo直接获取微信头像,昵称

wx.getUserInfo({   success: function (res) {   that.setData({     nickName: res.userInfo.nickName,     avatarUrl: res.userInfo.avatarUrl,   })   },})

登录后复制

第二种

我们在使用小程序wx.login API进行登录的时候,直接使用wx.getUserInfo是不能获取更多的信息的,如微信用户的openid。
官方提示,需要发送获取到的code进行请求到微信的后端API,进行用户解密之类的操作才可以获取,

根据文档,只需要进行一个get请求到如下地址即可:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_codeappid和secret在微信小程序后台可以看到,js_code为使用wx.login登录时获取到的code参数数据,grant_type这个不用改动。

登录后复制

js文件

var openId = (wx.getStorageSync('openId'))    if (openId) {     wx.getUserInfo({      success: function (res) {       that.setData({        nickName: res.userInfo.nickName,        avatarUrl: res.userInfo.avatarUrl,       })      },      fail: function () {       // fail       console.log("获取失败!")      },      complete: function () {       // complete       console.log("获取用户信息完成!")      }     })    } else {     wx.login({      success: function (res) {       console.log(res.code)       if (res.code) {        wx.getUserInfo({         withCredentials: true,         success: function (res_user) {          wx.request({           //后台接口地址           url: 'https://....com/wx/login',           data: {            code: res.code,            encryptedData: res_user.encryptedData,            iv: res_user.iv           },           method: 'GET',           header: {            'content-type': 'application/json'           },           success: function (res) {            // this.globalData.userInfo = JSON.parse(res.data);            that.setData({             nickName: res.data.nickName,             avatarUrl: res.data.avatarUrl,            })            wx.setStorageSync('openId', res.data.openId);           }          })         }, fail: function () {          wx.showModal({           title: '警告通知',           content: '您点击了拒绝授权,将无法正常显示个人信息,点击确定重新获取授权。',           success: function (res) {            if (res.confirm) {             wx.openSetting({              success: (res) => {               if (res.authSetting["scope.userInfo"]) {////如果用户重新同意了授权登录                wx.login({                 success: function (res_login) {                  if (res_login.code) {                   wx.getUserInfo({                    withCredentials: true,                    success: function (res_user) {                     wx.request({                      url: 'https://....com/wx/login',                      data: {                       code: res_login.code,                       encryptedData: res_user.encryptedData,                       iv: res_user.iv                      },                      method: 'GET',                      header: {                       'content-type': 'application/json'                      },                      success: function (res) {                       that.setData({                        nickName: res.data.nickName,                        avatarUrl: res.data.avatarUrl,                       })                       wx.setStorageSync('openId', res.data.openId);                      }                     })                    }                   })                  }                 }                });               }              }, fail: function (res) {              }             })            }           }          })         }, complete: function (res) {         }        })       }      }     })    } }, globalData: {    userInfo: null }

登录后复制

后台是php 框架是laravel5.4版本

官方文档:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html

微信官方提供了多种编程语言的示例代码(点击下载)。每种语言类型的接口名字均一致。调用方式可以参照示例。

下载之后在php文件中引入:

get('code');    $encryptedData  =  $request->get('encryptedData');    $iv  =  $request->get('iv');    $appid = "***" ;    $secret =  "***";    $URL = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";    $apiData=file_get_contents($URL);    // var_dump($code,'wwwwwwww',$apiData['errscode']);    //   $ch = curl_init();    //   curl_setopt($ch, CURLOPT_URL, $URL);    //   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    //   curl_setopt($ch, CURLOPT_HEADER, 0);    //   $output = curl_exec($ch);    //   curl_close($ch)    if(!isset($apiData['errcode'])){      $sessionKey = json_decode($apiData)->session_key;      $userifo = new WXBizDataCrypt($appid, $sessionKey);      $errCode = $userifo->decryptData($encryptedData, $iv, $data );      if ($errCode == 0) {        return ($data . "");      } else {        return false;      }    }  }

登录后复制

官方文档的登录流程图,整个登录流程基本如下图所示:

微信小程序授权获取用户详细信息实例

相关推荐:

Thinkphp5微信小程序如何获取用户信息接口

微信小程序获取用户信息实例方法

微信小程序获取用户信息如何实现

以上就是微信小程序授权获取用户详细信息实例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2787430.html

(0)
上一篇 2025年3月8日 18:07:29
下一篇 2025年2月25日 07:44:44

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 微信小程序template模板引用实例分享

    本文主要和大家介绍微信小程序视图template模板引用的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家。 微信小程序视图template模板引用的实例详解 WXML 提供两种文件引用方式import和…

    2025年3月8日
    200
  • vue与jquery实时监听用户输入状态代码分享

    本文主要和大家分享使用vue与jquery实时监听用户输入状态,实现效果是input未输入值时,按钮禁用状态,具体操作代码大家参考下本文吧,希望能帮助到大家。 实现效果:input未输入值,按钮禁用 jquery操作代码: html  登录…

    编程技术 2025年3月8日
    200
  • 微信小程序速查知识

    本文主要和大家分享微信小程序速查知识,可以让大家对微信小程序开发更加容易,希望本文能帮助到大家。 1. 配置 配置全解析 project.config.json ( 项目配置文件 ) { // 文件描述 “description”: “项目…

    2025年3月8日
    200
  • 微信小程序的生命周期与参数传递

    这次给大家带来微信小程序的生命周期与参数传递,微信小程序生命周期与参数传递的注意事项有哪些,下面就是实战案例,一起来看一下。 现在WEB开发门槛越来越高,不想java 会了就可以有工作,前端不行 ,不仅JavaScript要求不低,基础的H…

    2025年3月8日 编程技术
    200
  • 微信小程序的多文件下载封装使用

    这次给大家带来微信小程序的多文件下载封装使用,使用微信小程序的多文件下载封装的注意事项有哪些,下面就是实战案例,一起来看一下。 需求 需要生成一个宣传的图片分享到朋友圈,这个宣传图片包含二维码,包含不同的背景图片和不同的文字。对于这种图片生…

    编程技术 2025年3月8日
    200
  • 微信小程序开发图片压缩功能

    这次给大家带来微信小程序开发图片压缩功能,微信小程序开发图片压缩功能的注意事项有哪些,下面就是实战案例,一起来看一下。 小龙大哥的微信小程序在初始阶段相当于IE界的6,在这里给大家说一个刚趟过去的坑。 拍照的API。 wx.chooseIm…

    编程技术 2025年3月8日
    200
  • 小程序的Promise简化回调

    这次给大家带来小程序的Promise简化回调,小程序Promise简化回调的注意事项有哪些,下面就是实战案例,一起来看一下。 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和…

    2025年3月8日
    200
  • 用正则验证用户的帐号密码以及手机号码与身份证的方法

    这次给大家带来用正则验证用户的帐号密码以及手机号码与身份证的方法,用正则验证用户的帐号密码以及手机号码与身份证的注意事项有哪些,下面就是实战案例,一起来看一下。 废话不多说了,下面给大家介绍使用正则表达式验证用户名、密码、手机号码、身份证的…

    编程技术 2025年3月8日
    200
  • 使用正则验证用户输入的银行卡号(附代码)

    这次给大家带来使用正则验证用户输入的银行卡号(附代码),使用正则验证用户输入银行卡号的注意事项有哪些,下面就是实战案例,一起来看一下。 //js正则实现用户输入银行卡号的控制及格式化 function formatBankNo (BankN…

    编程技术 2025年3月8日
    200
  • Ajax+bootstrap优化网页用户体验的步奏

    这次给大家带来Ajax+bootstrap优化网页用户体验的步奏,Ajax+bootstrap优化网页用户体验的注意事项有哪些,下面就是实战案例,一起来看一下。 Bookstrap:美化页面: Bootstrap是Twitter推出的一个开…

    2025年3月8日
    200

发表回复

登录后才能评论