1.写微信支付遇到状况,通过wx.login获取code,然后向微信服务器获取openid,获取失败:{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: pYM6ma0957th24 ]"}
2.错误信息提示无效的code,网上查一下说是二次使用code导致失效..但是我这代码明显就是拿到code后直接请求获取openid
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项目。
获取openid正确的方法应该是:项目appid,请求appid,以及请求密钥是配套的..

本文详细记录了在微信支付中遇到的openid获取失败问题,错误提示为无效的code。通过对代码逻辑的检查和对比,发现是由于使用的appid与请求的appid不匹配导致。文章分享了解决方案,即确保项目appid、请求appid及密钥的一致性。
3137

被折叠的 条评论
为什么被折叠?



