NutzCN Logo
问答 使用微信jssdk时报access_denied错误
发布于 2529天前 作者 蛋蛋的忧伤 6358 次浏览 复制 上一个帖子 下一个帖子
标签:

我又申请了个大王卡,直接把页面源码搞了下来,发现联通是这么打开摄像头录视频的,然后我按照他的套路来写,最后报错: err_msg:System:access_denied
然后我大概百度了下这个错误,发现大家都是在支付的时候才出现的,实在无招,前来求救.....

     var url = encodeURIComponent(location.href.split('#')[0]);
    //alert('url is ' + url);
    //获取签名字段
    $.ajax({
        url:'http://qq_32b899df.ngrok.wendal.cn/nutzforweixin/weixin/getTicket',
        type:'get',
        async:false,
        data:{url:url},
        success:function(data){
            console.log(data);
            var appid = data.appid;
            var timestamp = data.timestamp;
            var nonceStr = data.nonceStr;
            var signature = data.signature
            wx.config({
                debug: false,
                appId: appid,//id
                timestamp:ti    mestamp ,//时间戳
                nonceStr: nonceStr,//随机字符串
                signature:signature,//签名
                jsApiList: [
                    'checkJsApi',
                    'hideAllNonBaseMenuItem',
                    'showAllNonBaseMenuItem',
                    'translateVoice',
                    'chooseVideo',
                    'startRecord',
                    'stopRecord',
                    'onRecordEnd',
                    'playVoice',
                    'pauseVoice',
                    'stopVoice',
                    'uploadVoice',
                    'uploadVideo',
                    'downloadVoice',
                ]
            });
            wx.ready(function () {
                //$('.wait').hide();
                alert("config ok!");
                // // 选取拍摄视频
                uploadVideo = function(){        
                    var sourceType = "camera";
                    var camera = "front";
                    var maxDuration = "6";
                    // console.log(sourceType, camera, maxDuration);
                    // console.log("WeixinJSBridge:");
                    // console.log(WeixinJSBridge);
                    alert(WeixinJSBridge);
                    WeixinJSBridge.invoke('chooseVideo', {         //打开前置相机,录视频...
                        sourceType: sourceType,
                        maxDuration: maxDuration,
                        camera: camera
                    }, function (res) {             
                        alert(111);
                        alert(JSON.stringify(res));
                        console.log(res);
                        videoTag='0';
                        if(isEmpty(res.localId)){
                            return;
                        }
                        
                        // 上传视频
                        WeixinJSBridge.invoke('uploadVideo', {
                            appId: WX_CONFIG.appId,
                            localId: res.localId
                        }, function (res) {
                            alert("执行完毕.."+res);
                           }
                        });
                    });
                };
            });
            wx.error(function (res) {
                console.log("error: "+ res.errMsg);
	            alert("error: "+ res.errMsg);
                //alert("出现错误!");
            });
        },
        error:function(e){
            console.log(e);
        }
    });
9 回复

人家是白名单吧, 打开其他功能正常不?

jssdk需要设置安全域

安全域名我是设置了的,按微信文档的套路成功用它的api录音并上传了,联通这里写的有点怪,他在jsApiList这个权限数组里申请了 两个微信文档里根本没有的权限:
chooseVideo 和 uploadVideo然后还有就是他是这么调用接口的:
WeixinJSBridge.invoke('chooseVideo', {
...
},function(res){
...
}

这个语法在微信文档里都没出现过呢....我怀疑联通和腾讯有奸情,你怎么看

万能的wendal啊.....("▔□▔)/

搜索此权限后[chooseVideo],发现此api是在小程序里的.......

我刚想说的.....所以啊,一个web页面能掉到小程序的api,这尼玛肯定有奸情啊....

看到一个 WeixinJSBridge API的文章,于是有很多网友都在过来咨询这个API的使用,在这里有必要跟大家再说一下:这个API在以前公布的部分接口被官方和谐掉很久了, 比如一键关注、分享给好友、分享到朋友圈等。当然,你可能会发现微信官方推送的一些文章还能使用这些功能,粗略估计,官方是对这个API增加了白名单控制,判断Referer,如果是微信官方的地址、或者是有合作的商家地址,则允许调用,否则,返回“access denied”!

fuck Tencent!!1

http://www.henkuai.com/forum.php?mod=viewthread&tid=10886&highlight=WeixinJSBridge

添加回复
请先登陆
回到顶部