企业微信JsAPI fail_permission denied一例解决方案

这个问题很奇怪,所有的签名数据都正确,通过控制台一模一样的数据,可能上一次还好好的,下一次可能就jsapi调用错误

function wxpageinit(app_id, Timestamp, Nonce_str, sign) {
    wx.config({
        beta: true,
        debug: false,
        appId: app_id,
        timestamp: Timestamp,
        nonceStr: Nonce_str,
        signature: sign,
        jsApiList: ["checkJsApi", "chooseImage", "previewImage", "uploadImage", "downloadImage", "getNetworkType", "onHistoryBack", "selectEnterpriseContact", ]
    });
    wx.ready(function () {
        try {
            wx.onHistoryBack(function () {
                return historyreturn();
            })
        } catch (e) { }
    })
}
function setwxsign() {
    $.ajax({
        url: "/xxxxxxx.action?v=1",//后台签名
        type: "GET",
        data: {},
        contentType: "text/plain; charset=utf-8",
        dataType: "json",
        success: function (p_datas) {
            if (p_datas == null | p_datas.length == 0) {
                return;
            }
            if (p_datas[0].result != "success") {
                return;
            }
            try {
                data = p_datas[0];
                if (data != undefined) {
                    setTimeout("wxpageinit(data.app_id, data.timestamp, data.nonceStr, data.sign);", 1000 );
                }
            }
            catch (e) { alert(e.Message);
            }
        },
        fail: function (p_error) {
        }
    })
}
try {
    $(function () {
        setwxsign();});
} catch (e) {
}

注意红色部分,增加一个延时再出现fail_permission denied的几率少了很多。请忽略代码风格,公司的老传家代码。

可能原因:

1.本地js未加载前执行了wx.config导致,但是并没有报wx.config错误,而且wx.ready正常

2.可能是企业微信服务器的问题,(自从企业微信上线通讯录组件替换后才出现该问题),之前的管理员缓存问题至今好像还未解决。

posted @ 2020-07-31 16:49  zhaogaojian  阅读(2941)  评论(1编辑  收藏  举报