收藏
回答

wx.login已经获得了code,微信后端怎么获得openid?

wx.login已经获得了用户的code并传给了后端,后端如何调用官方给出的https接口获得session_key 和openid?后端语言为nodejs

最后一次编辑于  2018-06-07  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

5 个回答

  • 十
    2018-06-08

    你后台用的nodejs?如果是的话试试这

    const qs = require('querystring');

    const request = require('request');

    router.get(‘openid’,function(req, res) => {

            var data = {

                'appid': appid,//你的appid

                'secret': secret,//你的secret

                'js_code': req.query.code,

                'grant_type': 'authorization_code'

            };

            var content = qs.stringify(data);

            var url = 'https://api.weixin.qq.com/sns/jscode2session?' + content;

    request.get({

                'url': url

            }, (error, response, body) => {

       // 处理结果

        let body= JSON.parse(body);

        })

    })


    2018-06-08
    赞同 1
    回复 5
    • 赤翎
      赤翎
      2018-06-08

      谢谢谢谢已经走得通了

      2018-06-08
      回复
    • VINO
      VINO
      2018-06-10回复赤翎

      您好,请问你能把小程序服务器端的js请求服务器获取openid代码发一下吗?  我服务器端也是用的node.js但是我不会写服务器端请求代码。。。感激不尽

      2018-06-10
      回复
    • 赤翎
      赤翎
      2018-06-10回复VINO

      //发起请求获得当前用户openid

      const axios = require('axios')

      router.get('/getopenid',async(ctx,next)=>{

      var code = querystring.parse(decodeURIComponent(ctx.request.url)).code

      var response = await axios.get('https://api.weixin.qq.com/sns/jscode2session', {

      params: {

      appid: '',

      secret: '',

      js_code: code,

      grant_type: 'authorization_code'

      }

      })

      // console.log(response)

      openid = response.data.openid

      return ctx.body = {

      info: openid

      }

      })


      2018-06-10
      回复
    • VINO
      VINO
      2018-06-10回复赤翎


      502问题。。请问该如何解决?

      2018-06-10
      回复
    • 赤翎
      赤翎
      2018-06-10回复VINO

      服务端这么写就是没错的了,,其他自己看

      2018-06-10
      回复
  • J
    J
    2018-06-08

    用request

    2018-06-08
    赞同 1
    回复 1
    • 赤翎
      赤翎
      2018-06-08

      谢谢谢谢已经走得通了

      2018-06-08
      回复
  • 宣纸泼墨
    宣纸泼墨
    2018-08-30

    楼主,为什么我请求node开发环境 请求模块上传不上去?

    {"code":-1,"reason":"module.js:487\n throw err;\n ^\n\nError: Cannot find module 'request'\n at Function.Module._resolveFilename (module.js:485:15)\n at Function.Module._load (module.js:437:25)\n at Module.require"}

    一直出现这种错误

    2018-08-30
    赞同
    回复
  • 赤翎
    赤翎
    2018-06-07



    2018-06-07
    赞同
    回复 2
    • 赤翎
      赤翎
      2018-06-07

      是我代码写错了么?

      2018-06-07
      回复
    • 赤翎
      赤翎
      2018-06-07回复

      。。。后台怎么自己去获取啊?后台要接受到code然后向

      https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

      这个接口请求openid,后台发起请求代码怎么写?

      2018-06-07
      回复
  • 黎伟杰
    黎伟杰
    2018-06-07

    后端调用微信提供的接口啊。文档不是有吗,接口地址是这个:登录凭证校验

    2018-06-07
    赞同
    回复 2
    • 赤翎
      赤翎
      2018-06-07

      我知道要调用接口,,怎么调用??我发起请求报错internal server error

      能麻烦写一下调用接口的大致代码么?


      2018-06-07
      回复
    • 赤翎
      赤翎
      2018-06-07回复赤翎



      2018-06-07
      回复