微信小程序登录 报错 invalid appid 40013

微信小程序登录需要前端调用wx.login,返回的code交给后台调用code2Session,才能返回给前台一个openid(用户唯一标识)。

后台:node.js

报错:
在这里插入图片描述
原因:
错误代码将https.get的url和参数分开写了,以为httpsReq.write(data);是传参。实际就是应该把url和传参拼接在一起。而且get请求本来就只能把参数写url里,不能像post一样写成data再传。

错误代码:

let https=require('https');
app.get('/code2Session',function(req,res){
    console.log('code2Session',req.query);
    let data={
      appid:"你的appid",
      secret:'你的appsecret',
      js_code:req.query.code,
      grant_type:'authorization_code'
    };
    let body='';
    let httpsReq=https.get(‘https://api.weixin.qq.com/sns/jscode2session’,(res)=>{
      console.log('状态码',res.statusCode);
      console.log("请求头",res.headers);
      res.on('data',(data)=>{
        body+=data;
      }).on('end',()=>{
        console.log(body);
      });
    }).on('error',(e)=>{
      console.log('error:'+e.message);
    });
    httpsReq.write(data);
    httpsReq.end();
})

正确代码:

let https=require('https');
app.get('/code2Session',function(req,res){
    console.log('code2Session',req.query);
    let data={
      appid:"你的appid",
      secret:'你的appsecret',
      js_code:req.query.code,
      grant_type:'authorization_code'
    };
    let url='https://api.weixin.qq.com/sns/jscode2session?appid='+data.appid+'&secret='+data.secret
            +'&js_code='+data.js_code+'&grant_type=authorization_code'
    let body='';
    https.get(url,(res)=>{
      console.log('状态码',res.statusCode);
      console.log("请求头",res.headers);
      res.on('data',(data)=>{
        process.stdout.write(data);
      }).on('end',()=>{
        console.log(body);
      });
    }).on('error',(e)=>{
      console.log('error:'+e.message);
    });
})

你可能感兴趣的:(微信小程序)