• 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,再用这两个参数去获取手机号码。

  • 相关阅读:
    python基于PHP+MySQL的药店药品进销存管理系统
    Spring的创建和使用
    认真研究MySQL主从复制
    小程序 swiper滑动 层叠滑动效果
    【scikit-learn基础】--『回归模型评估』之可视化评估
    144. 二叉树的前序遍历
    【云原生】MySql索引分析及查询优化
    Redis 缓存雪崩、缓存穿透、缓存击穿
    iOS 设置下载部分文件,如何获取完整文件的大小
    上门预约上门洗衣洗鞋店管理软件;
  • 原文地址:https://blog.csdn.net/song19990524/article/details/134082394