收藏
回答

调用wx.getUserProfile报-12007,如何解决?

根据社区公告的内容,我们根据公告文档中的最佳实践:

1. 安装了对应版本的开发者工具

2. 对登录授权做了向下兼容处理

3. 使用新的wx.getUserProfile 来访问用户授权,获取用户头像与昵称

4. 对授权登录业务功能进行了改造

相关改动,在开发版与体验版功能验收时一切正常,2021-04-13 00:29 分将体验版验收正常的功能发布正式版,正式版报错,打断了授权登录流程。

想知道如何解决体验版与正式版表现不一的问题,让获取用户信息的功能改造能正式发版?



/**

* @Description: 基础库2.10.4 2021-04-13 后可以自由调用不需要授权

* @return {Promise} 返回一个pending结束的promise

*/

_getUserInfo() {

return new Promise((resolve, reject) => {

wx.getUserInfo({

success(res) {

const { rawData, iv, signature, encryptedData } = res

const userInfo = {

rawData,

iv,

signature,

encryptedData

}

resolve(userInfo)

},

fail(err) {

reject(err)

}

})

})

},

/**

* @Description: 微信在2021-04-13进行的调整 基础库2.10.4 以上的用户需要使用wx.getUserProfile 才能获取用户个人信息,地理位置,性别,昵称,头像

* @param {type} {*}

* @return {type} {*}

*/

_getUserProfile({ successCallBack, failCallBack }) {

wx.getUserProfile({

lang: 'zh_CN',

desc: '更新用户头像与昵称',

success: async (res) => {

const { userInfo } = res

successCallBack(res)

},

fail: (err) => {

if (isFunction(failCallBack)) {

failCallBack(err)

}

}

})

},


最后一次编辑于  2021-04-13
回答关注问题邀请回答
收藏

6 个回答

  • 黄思程
    黄思程
    置顶回答2021-04-13

    看提示是直接调用了 wx.getUserInfo,目前正式版的调整还未生效,直接调用是不允许的,得通过 button 或者通过 getSetting 得知已授权才行,这是原有逻辑

    而本次调整,应改为调用 getUserProfile,兼容逻辑建议参考文档示例 https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html

    2021-04-13
    有用
    回复 11
    • 王英超
      王英超
      2021-04-13
      我们的需求是就为了获取openID和unionID,按照这次的说明文档我们就是应该调用getUserInfo,但现在的问题是今天已经13号了,测试版和开发版可直接调用getUserInfo,但正式环境调用getUserInfo直接fail
      2021-04-13
      回复
    • 王英超
      王英超
      2021-04-13
      "看提示是直接调用了 wx.getUserInfo,目前正式版的调整还未生效,直接调用是不允许的,得通过 button 或者通过 getSetting 得知已授权才行,这是原有逻辑" 这个也不行,在开发环境下和测试环境下 已经无法通过来触发授权框了,所以getSetting getUserInfo 永远是未授权
      2021-04-13
      回复
    • 黄思程
      黄思程
      2021-04-13回复王英超
      你是从哪里的说明文档得知的?openid 和 unionid 直接从 wx.login 获取,请仔细阅读公告哦,这次调整的本质就是将 getUserInfo 的职责分离,unionid 和 userInfo 的获取分开,按这个思路看就不要再用 getUserInfo
      2021-04-13
      回复
    • 王英超
      王英超
      2021-04-13回复黄思程
      文档上不是写了么  13号之后 getUserInfo 获取到的数据 传给后端解密 依然能获取unionid 和 userInfo么   “4月13日后发布的新版本小程序,开发者调用wx.getUserInfo或<button open-type="getUserInfo"/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。” 这不是都白纸黑字写着呢么
      2021-04-13
      回复
    • 王英超
      王英超
      2021-04-13回复黄思程
      我明白你的意思了,但按照文档说明,按我这样做也不应该出现现在的问题啊
      2021-04-13
      回复
    查看更多(6)
  • ANG
    ANG
    2021-04-14

    https://juejin.cn/post/6948058565944803341

    2021-04-14
    有用
    回复
  • 拈花指
    拈花指
    2021-04-14

    请今天在正式版将getUserInfo接口搞好,和体验版一致,和你们发的公告保持一致吧,我们小程序都按照公告开发的,体验本可以,现在发布了一堆bug

    // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
    


    2021-04-14
    有用
    回复
  • 小V书写
    小V书写
    2021-04-13

    这个基础库不能用,最好是大于2.13.2基础库使用,小于这个版本的可以先使用旧版本登录机制做兼容

    2021-04-13
    有用
    回复
  • 默
    2021-04-13

    未授权调用

    这个API getUserProfile 不需要授权 不要搞混了

    2021-04-13
    有用
    回复
  • 有棱角的胖子
    有棱角的胖子
    2021-04-13

    上面不是写着getUserInfo报错吗

    2021-04-13
    有用
    回复
登录 后发表内容
问题标签