• uniapp 微信授权获取用户信息和手机号


    uniapp中获取微信用户信息和手机号码可以使用微信开发者工具提供的API,需要先在工具中进行相关配置,具体步骤如下:

    1. 在微信开发者工具中打开项目,进入项目根目录下的manifest.json文件,添加如下代码:
    1. "mp-weixin": {
    2. "appid": "wx****",
    3. "oauth": {
    4. "scope": "snsapi_userinfo",
    5. "responseType": "code"
    6. }
    7. }

    其中,wx****为你自己的appid,snsapi_userinfo表示要获取用户信息授权,如果需要获取手机号码授权,则需要设置为snsapi_base

    1. 在需要获取用户信息或手机号码的页面中,编写如下代码:
    1. // 获取用户信息
    2. uni.getUserInfo({
    3. provider: 'weixin',
    4. success: function (res) {
    5. console.log('获取用户信息成功:' + JSON.stringify(res.userInfo));
    6. },
    7. fail: function (err) {
    8. console.log('获取用户信息失败:' + JSON.stringify(err));
    9. }
    10. })
    11. // 获取手机号码
    12. uni.login({
    13. provider: 'weixin',
    14. success: function (loginRes) {
    15. uni.request({
    16. url: 'https://api.weixin.qq.com/sns/jscode2session',
    17. data: {
    18. appid: 'wx****',
    19. secret: '****',
    20. js_code: loginRes.code,
    21. grant_type: 'authorization_code'
    22. },
    23. success: function (res) {
    24. console.log('code2session返回code:' + JSON.stringify(res));
    25. uni.getUserInfo({
    26. provider: 'weixin',
    27. success: function (infoRes) {
    28. console.log('获取用户信息成功:' + JSON.stringify(infoRes.userInfo));
    29. uni.request({
    30. url: 'https://api.weixin.qq.com/sns/userinfo',
    31. data: {
    32. access_token: res.access_token,
    33. openid: res.openid,
    34. lang: 'zh_CN'
    35. },
    36. success: function (phoneRes) {
    37. console.log('获取手机号码成功:' + JSON.stringify(phoneRes));
    38. },
    39. fail: function (phoneErr) {
    40. console.log('获取手机号码失败:' + JSON.stringify(phoneErr));
    41. }
    42. })
    43. },
    44. fail: function (infoErr) {
    45. console.log('获取用户信息失败:' + JSON.stringify(infoErr));
    46. }
    47. })
    48. },
    49. fail: function (res) {
    50. console.log('code2session失败,错误码为:' + res.errMsg);
    51. }
    52. })
    53. },
    54. fail: function (loginErr) {
    55. console.log('微信登录失败:' + JSON.stringify(loginErr));
    56. }
    57. })

    需要注意的是,获取用户信息和手机号码的方法都需要在微信登录成功后才能调用,因此需要先调用uni.login方法进行登录。同时,在获取手机号码时,需要先调用微信提供的code2session API获取session_key和openid,再用这两个参数去获取手机号码。

  • 相关阅读:
    2023Fall美高选校必看!敏思跃动独家发布美国私立寄宿高中选校分级表
    Mysql底层数据结构为什么选择B+树
    计算机体系结构第四章实验——cache模拟器实验
    Java类的初始化过程
    【Mysql面试加分项】——Innodb的死锁检测机制【文末送书】
    《Linux驱动:s3c2440 lcd 驱动分析--终结篇》
    从零开始学JAVA(02):基本知识、基本数据类型、运算符、转义符
    记录Centos7.9 安装mongodb 6.0 过程遇到的坑和解决办法
    2022-03-09-Zookeeper
    Object.defineProperty()
  • 原文地址:https://blog.csdn.net/song19990524/article/details/134082394