小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在开发工具上可以使用,
点击预览,到手机上,就是这样了
把报错放大看看
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我开发的是插件,而且这个问题也出现很久了,我简单描述下:
小程序插件受到功能限制,无法调用wx.login等方法,于是我在开发时,在开发插件隔壁的miniprogram目录中的小程序里面,把wx对象传递给了小程序插件,从而使用wx.login等方法;
使用wx.login()是没有问题的,但是拿到了res.code之后传递给后端,使用 https://api.weixin.qq.com/sns/jscode2session 接口换sessionid就报错了,40029,invalid code;考虑到,是不是这种hack的形式在小程序插件里面行不通,我就继续做了尝试,1、在小程序(miniprogram)装载的时候调用login,传递res.code;2、在调用插件的页面装载时调用wx.login,传递res.code;
---- 以上均为打开小程序开发者工具中的预览后,手机操作失败!开发者工具都没出问题;
最后采取了把我们登录接口外移到小程序的miniprogram中,在app.js装载的时候调用,还是失败了,一样的报错。
尚未审核发布,仍然在本地联调阶段!
你好,500错误是由于内部服务器错误造成的,还请自查
这个错误是透传回来的,是后端调用了https://api.weixin.qq.com/sns/jscode2session 这个返回的结果,不是我们服务器的问题~请你们检查下
我们做了进一步的测试,依然调用的是 https://api.weixin.qq.com/sns/jscode2session 的接口: 1、我们在wx.login之后改变了res.code中的某一位,使之成为一个非法的code,在调用接口之后,无论多少次,接口返回的errmsg 都是 invalid code; 2、我们点开预览之后在手机上调用的wx.login,并且使用res.code,在调用接口后,第一次提示 invalid code,第二次提示code been used;
在开发者工具中调用的wx.login返回的res.code,调用接口是可用的。
我尝试了许多种方法:
在miniprogram中的index页面onLaunch的时候调用wx.login,将openid传给plugin;
在miniprogram的跳转页面内(使用组件的页面)调用wx.login,再将openid传给plugin;
将miniprogram中的wx对象传给plugin,在组件内部使用传入的wx调用wx.login获取openid;
都是失败的,抓包 https://api.weixin.qq.com/sns/jscode2session 返回的是40029的错误码,errmsg是invalid code,再次使用该code就是 used 的报错。
唯一成功了一次,在开发者工具的调试窗口,调用了wx.login(),将返回的code写死传递给组件,通过手机预览打开后可以成功调用 https://api.weixin.qq.com/sns/jscode2session ,再进入为code been used,这样是符合预期的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
我开发的是插件,而且这个问题也出现很久了,我简单描述下:
小程序插件受到功能限制,无法调用wx.login等方法,于是我在开发时,在开发插件隔壁的miniprogram目录中的小程序里面,把wx对象传递给了小程序插件,从而使用wx.login等方法;
使用wx.login()是没有问题的,但是拿到了res.code之后传递给后端,使用 https://api.weixin.qq.com/sns/jscode2session 接口换sessionid就报错了,40029,invalid code;考虑到,是不是这种hack的形式在小程序插件里面行不通,我就继续做了尝试,1、在小程序(miniprogram)装载的时候调用login,传递res.code;2、在调用插件的页面装载时调用wx.login,传递res.code;
---- 以上均为打开小程序开发者工具中的预览后,手机操作失败!开发者工具都没出问题;
最后采取了把我们登录接口外移到小程序的miniprogram中,在app.js装载的时候调用,还是失败了,一样的报错。
尚未审核发布,仍然在本地联调阶段!
你好,500错误是由于内部服务器错误造成的,还请自查
这个错误是透传回来的,是后端调用了https://api.weixin.qq.com/sns/jscode2session 这个返回的结果,不是我们服务器的问题~请你们检查下
我们做了进一步的测试,依然调用的是 https://api.weixin.qq.com/sns/jscode2session 的接口: 1、我们在wx.login之后改变了res.code中的某一位,使之成为一个非法的code,在调用接口之后,无论多少次,接口返回的errmsg 都是 invalid code; 2、我们点开预览之后在手机上调用的wx.login,并且使用res.code,在调用接口后,第一次提示 invalid code,第二次提示code been used;
在开发者工具中调用的wx.login返回的res.code,调用接口是可用的。
我尝试了许多种方法:
在miniprogram中的index页面onLaunch的时候调用wx.login,将openid传给plugin;
在miniprogram的跳转页面内(使用组件的页面)调用wx.login,再将openid传给plugin;
将miniprogram中的wx对象传给plugin,在组件内部使用传入的wx调用wx.login获取openid;
都是失败的,抓包 https://api.weixin.qq.com/sns/jscode2session 返回的是40029的错误码,errmsg是invalid code,再次使用该code就是 used 的报错。
唯一成功了一次,在开发者工具的调试窗口,调用了wx.login(),将返回的code写死传递给组件,通过手机预览打开后可以成功调用 https://api.weixin.qq.com/sns/jscode2session ,再进入为code been used,这样是符合预期的。