浪费了2小时排查,我还以为我代码有问题,结果这玩意开发工具确实都返回一样的serverId。真机alert一点问题都没有。
微信公众号通过js-sdk录音并上传微信服务器返回的serverId都是一个,是什么问题?使用微信公众号测试账号开发,遇到使用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();[代码][代码] [代码][代码]}[代码]
2020-04-15