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

  • 相关阅读:
    SQL内连接——使用场景记录
    Android Framework学习之Activity启动原理
    Filter(过滤器)和监听器(Listener)
    【强化学习论文】小样本策略泛化的提示决策转换器
    npm ERR! fatal: early EOF npm ERR! fatal: index-pack failed
    letterbox实现
    面试题:你是如何计划和组织一个大型的软件测试项目的?
    005.用哈希查找算法查找七色光颜色【哈希查找算法】
    【毕业设计】树莓派智能捡垃圾机器人 - 机器视觉 单片机 物联网
    CSRF及SSRF详解
  • 原文地址:https://blog.csdn.net/song19990524/article/details/134082394