微信小程序获取openId,传参问题导致参数无效(errcode: 40013、errcode:40125、errcode“:40029)

微信小程序获取openId

最近开发微信小程序,需要获取用户openId,在开发过程中遇到了一个细节问题,虽然不是很大,但是稍不注意就会出错。
获取openId需要本地后台向微信服务器发送请求,我本地是Node.js搭建的后台,在请求的url中传入3个参数,分别是code、appId和appSecret,本人就是在传参过程中出现了一个错误,导致获取openId失败。报错信息如:
errcode: 40013,
errmsg: ‘invalid appid rid: 607e3362-03d953f9-5ec49697’

“errcode”:40125,
“errmsg”:“invalid appsecret, view more at http:\/\/t.cn\/RAEkdVq, hints: [ req_id: zeJBxIore-v9KAtA ]”

“errcode”:40029,
“errmsg”:“invalid code, hints: [ req_id: 1eJBGzyFe-oyX_ka ]”

一、先来看一下我的代码

前端代码
wx.login({
   success:async (res) => {
     let code=res.code;
     //2.将登录凭证发送到服务器
     let result=await request("/getOpenId",{code:code});
     console.log(result)
   }
})
本地后台代码
// 注册获取用户openId的接口
app.use("/getOpenId",async (req,res,next) => {
	let code=req.query.code;
	let appId="wx*************";//自己的appId
	let appSecret="*************************";//自己的secret
	//3.发送请求给微信服务器
	let url="https://api.weixin.qq.com/sns/jscode2session?appid=${appId}&secret=${appSecret}&js_code=${code}&grant_type=authorization_code";
	let result=await fly.get(url);
	console.log(result)
	res.send("测试数据")
})

编译并运行……结果……………

二、本地后台报错信息

appId无效(错误代码:40013)
errcode: 40013,
errmsg: 'invalid appid rid: 607e3362-03d953f9-5ec49697'
appSecret无效(错误代码:40125)
"errcode":40125,
"errmsg":"invalid appsecret, view more at http:\\/\\/t.cn\\/RAEkdVq, hints: [ req_id: zeJBxIore-v9KAtA ]"
code无效(错误代码:40029)
"errcode":40029,
"errmsg":"invalid code, hints: [ req_id: 1eJBGzyFe-oyX_ka ]"

三、解决问题

原因:url参数无效

我向微信服务器发送请求的url为

let url="https://api.weixin.qq.com/sns/jscode2session?appid=${appId}&secret=${appSecret}&js_code=${code}&grant_type=authorization_code";

我用“{appId}”的形式获取参数,运行之后报错,参数无效。我估计是"${***}"获取参数失败。

修改url

将请求url改为

let url="https://api.weixin.qq.com/sns/jscode2session?appid="+appId+"&secret="+appSecret+"&js_code="+code+"&grant_type=authorization_code";

使用拼接字符串的形式传参,成功获取openId

data: '{
	"session_key":"*******************==",
	"openid":"*************************"
}'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值