1.写微信支付遇到情况,经过wx.login获取code,而后向微信服务器获取openid,获取失败:{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: pYM6ma0957th24 ]"}javascript
2.错误信息提示无效的code,网上查一下说是二次使用code致使失效..可是我这代码明显就是拿到code后直接请求获取openidjava
wx.login({ success: function (res) { console.log("code="+res.code) //获取openid wx.request({ url: "https://api.weixin.qq.com/sns/jscode2session?appid=wx21c06d123456789f&secret=94a111111a61b2222fcf333e76e4b6d1&js_code=" + res.code + "&grant_type=authorization_code", data: {}, method: 'GET', success: function (res) { console.log('返回openId:'+res.data.openid) console.log(res.data) that.generateOrder(res.data.openid) }, fail: function () { // fail }, complete: function () { // complete } }) } });
3.解决问题:经过查看项目的appid,发现appid跟本身的appid不同(创建项目时候使用的是公司给的appid...),从新创建本身的appid项目。api
获取openid正确的方法应该是:项目appid,请求appid,以及请求密钥是配套的..服务器