收藏
回答

关于getPhoneNumber(OBJECT)的解码问题

问题模块
API和组件

请问下wx.getUserInfo(OBJECT)和getPhoneNumber(OBJECT)的解码是一样的吗?为什么我原来的代码wx.getUserInfo(OBJECT)用示例代码可以解出来,但是getPhoneNumber(OBJECT)解码的时候始终都是

error code<li>-41003: aes 解密失败</li>???

想请问一下我是哪里出错了?


正常解出来的,用一样的代码一样的解密函数,导入一样的参数,但是就是出错


求指教~~~~~谢谢~~~~~~~~

最后一次编辑于  2017-08-25  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

18 个回答

  • focus
    focus
    2017-08-25

    我的也解不出来.

    2017-08-25
    赞同
    回复
  • stephen
    stephen
    2017-08-25

    我也一样,也是41003,

    官方能给个解释么,如果是还需要等库升级的话,就说一下吗

    这样不给个解释有点浪费开发者时间了

    2017-08-25
    赞同
    回复
  • 范范范先森
    范范范先森
    2017-08-25

    我的button按钮点击之后啥反应也没有。。。

    2017-08-25
    赞同
    回复
  • stephen
    stephen
    2017-08-25

    @范范范先森      


    点击没反应应该是你自己程序的问题     

    2017-08-25
    赞同
    回复
  • stephen
    stephen
    2017-08-25

    @范范范先森      

    你难道没用过获取个人信息的接口么?

    getPhoneNumber: function(e) {

        wx.login({

            success:function(res) {

                var code= res.code

                url = 服务器地址 + '&code=' + code + '&iv=' + e.detail.value.iv  .........................

                wx.request({

                    ....

                    ...

                    ....

                })

        })

    }


    2017-08-25
    赞同
    回复
  • focus
    focus
    2017-08-25

    @stephen 

    你是指用login获取code然后再获取sessionkey吗,我发现现在是这个sessionkey有问题了。返回41001,无效aeskey

    2017-08-25
    赞同
    回复
  • stephen
    stephen
    2017-08-25

    @易装客装修顾问        

    我的   sessionkey 应该没问题,否则我的获取openID,获取记步,获取群ID都会出问题,但这些目前都没问题

    我怀疑 iv 有问题。

    2017-08-25
    赞同
    回复
  • focus
    focus
    2017-08-25

    @stephen 

    解密文档中有下列说明

    1. 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。

    2. 对称解密的目标密文为 Base64_Decode(encryptedData)。

    3. 对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节。

    4. 对称解密算法初始向量 为Base64_Decode(iv),其中iv由数据接口返回。

    Base64_Decode(iv)在哪里要用这个函数处理,我之前解密用户数据都没用到这个函数啊.而且现在解密用户数据也正常.

    你知道这个函数要用在哪里吗


    2017-08-25
    赞同
    回复
  • stephen
    stephen
    2017-08-25

    @易装客装修顾问           


    哦,不好意思,看错了


    我的是41003,解密失败

    如果你是41001的话,那你查一下你获取session_key的方法吧

    2017-08-25
    赞同
    回复
  • 晨
    2017-08-25

    你好,session未过期情况下login会刷新登录态,导致sessionKey发生变化。稳妥的方案是在用户点击后,先checkSession,如果未过期,不login,服务器可以用之前的sessionKey解密。如果session过期,再重新login,可以使用新的sessionKey解密。


    2017-08-25
    赞同
    回复 1
    • Deron
      Deron
      2018-08-21

      怎么判断之前的sessionKey是当前这个用户的呢?

      2018-08-21
      赞同
      回复