微信公众号通过js-sdk录音并上传微信服务器返回的serverId都是一个,是什么问题?
发布于 5 年前 作者 wanchao 6949 次浏览 来自 官方Issues

使用微信公众号测试账号开发,遇到使用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();
       }



4 回复

localId: localIds.toString(), 试试格式转换下

检查一下是否用错了access_token或者是否失效,用成了其他账号的access_token也可能导致这个问题(media id和appid是相关联的)。

请问怎么解决的   我的也是这个问题

可以了,好像是微信开发者工具的锅,手机端没问题

回到顶部