使用微信公众号测试账号开发,遇到使用jssdk下的jweixin.uploadVoice()上传录音,每次返回的serverId都相同:
1237378768e7q8e7r8qwesafdasdfasdfaxss111
localId不同,
然后去后台下载录音文件结果都是
{"errcode":40007,"errmsg":"invalid media_id hint: [ON83ta01218661]"}
测试号appid:wx5cb57aa45095d16e
使用的微信开发者工具:
代码如下:
jweixin.uploadVoice({ localId: self.localId, // 需要上传的音频的本地ID,由stopRecord接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var serverId = res.serverId; // 返回音频的服务器端ID console.log( 'serverId' ,serverId); uni.request({ url: serverUrl + '/file/downloadFromWechatServer' , data:{ serverId:serverId }, success(res1) { console.log( '成功' ); } }) } }); |
java后台:
try { String mediaId = request.getParameter( "serverId" ); String url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + accessToken + "&media_id=" + mediaId; AccessToken.saveUrlAs(url, "D:/upload" , "GET" , "fileName" ); } catch (Exception e) { e.printStackTrace(); } |
请问怎么解决的 我的也是这个问题
可以了,好像是微信开发者工具的锅,手机端没问题
检查一下是否用错了access_token或者是否失效,用成了其他账号的access_token也可能导致这个问题(media id和appid是相关联的)。
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
+ APPID + "&secret=" + APPSECRET;