收藏
回答

40029 已尝试所有解决方案仍无效

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.request 工具 6.7.1 2.2.1

40029错误, 已经尝试过网上其他人的所有解决办法仍然无效:

  1. 重新在开发者工具里建立一个项目,填写appID, 我甚至重新注册了一个小程序,也无效。

  2. 已确保代码中没有用code两次


正常的一套逻辑,开发工具里前端拿到code, 发送给自己的本地服务器后端:

wx.login({
   success: res => {
     if (res.code) {
       wx.request({
         method: "GET" ,
         url: "http://localhost:8000/wechatSession?sessionCode=" + res.code,
         success: res => {
           console.log(res)
         }
       })
     else {
       console.log( '登录失败!' + res.errMsg)
     }
   }
})


后端代码:

app.get("/wechatSession", function (req, res) {  
 const wechatCode = req.query.code
 axios.get('https://api.weixin.qq.com/sns/jscode2session?appid=' +
   appID +
   '&secret=' +
   appSecret +
   '&js_code=' +
   wechatCode +
   '&grant_type=authorization_code')
   .then(function (response) {
     res.send(response.data)
   })
   .catch(function (error) {
     console.log(error);
   });
});



很奇怪的一件事情:


我如果直接在微信开发者工具里去拿session id的话就可以返回成功,但是通过本地服务器就不行,也试过用生产环境的服务器,同样不行。

最后一次编辑于  2018-08-03
回答关注问题邀请回答
收藏

8 个回答

  •  chaos 北健 
     chaos 北健 
    2018-08-06

    {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: 5P8xFa0256hb26 ]"}

    错误提示能不能,写清楚点。 到底是什么错误。code 是小程序取的没有问题。

    appid 等都没问题 以前都正常,今天突然就报错了。

    2018-08-06
    有用 1
    回复 3
    • yu Dfei
      yu Dfei
      2018-08-06

      我的也是,以前没事,今天写了个获取access_token的接口开始报错了,注释了新增的这段还是报错。。

      2018-08-06
      回复
    • yu Dfei
      yu Dfei
      2018-08-06回复yu Dfei

      重新新建了个项目,把原来的除了project.config.json其他的文件复制了过去,解决了

      2018-08-06
      回复
    •  chaos 北健 
       chaos 北健 
      2018-08-06

      我是后端请求。没有取access_token 只是根据code 取openid。

      2018-08-06
      回复
  • 丽丽家怪兽
    丽丽家怪兽
    2018-08-20

    我也遇到了,而且浏览器返回也是40029,重新二次的话返回是code已被使用错误.

    2018-08-20
    有用
    回复
  • 2018-08-07

    不是code有问题,就是appid和secret与小程序使用的appid不一致,导致code报错

    2018-08-07
    有用
    回复
  • 清风明月
    清风明月
    2018-08-06

    一样的啊。

    2018-08-06
    有用
    回复
  • Jason lee
    Jason lee
    2018-08-06

    我用的java写的后端,目前正常使用中

    2018-08-06
    有用
    回复 1
    •  chaos 北健 
       chaos 北健 
      2018-08-06

      同样的代码 同事正常,测试环境正常。本机就这个40029

      2018-08-06
      回复
  • #王伍林
    #王伍林
    2018-08-05

    还有这种问题?

    2018-08-05
    有用
    回复
  • Mr.Liang
    Mr.Liang
    2018-08-03

    你请求传的参数是sessionCode,服务器取参数用code,肯定拿不到客户端传过去的参数呀

    2018-08-03
    有用
    回复 3
    • Fan
      Fan
      2018-08-03

      我的错 那个只是我的命名。。。 传的还是code  这是完整的


      wx.login({
        success: res => {
          if (res.code) {
            wx.request({
              method: "GET",
              url: "http://localhost:8000/wechatSession?sessionCode=" + res.code,
              success: res => {
                console.log('-ssssss wow----')
                console.log(res)
              }
            })
          } else {
            console.log('登录失败!' + res.errMsg)
          }
        }
      })


      2018-08-03
      回复
    • Fan
      Fan
      2018-08-03回复Fan

      啊。。。。但是你让我醒悟了。。


      我最后取的是 code 应该取sessionCode.


      又是一个 typo引发的血案!


      sorry!

      2018-08-03
      回复
    • 丽丽家怪兽
      丽丽家怪兽
      2018-08-20

      搞定:

      1 使用

      code2accessToken

      文档中的访问url地址

      2确保project.config.json 中的appid为申请的appid(重启重建项目用原文件夹)

      这个code应该是通过appid 然后加密获得的,所以服务器如果你获得code不对自然会出错,原来我的appid是默认项目id,所以出错,搞定。


      2018-08-20
      回复
  • Fan
    Fan
    2018-08-03

    求助求助! 真的是懵了这个bug

    2018-08-03
    有用
    回复
登录 后发表内容