在进行离职继承时,如果员工没有实名,会出现继承失败的问题。

一般的做法是,在前期进行是否实名的判定,但是目前企业微信并没有相关接口


要想判定是否实名,只能另辟蹊径:

找一个接口,这个接口也需要实名才能使用,且这个接口不受调用次数限制。

我选的这个接口是“联系我”-“添加临时会话”接口,这个接口不占用「联系我」数量,且每天有10万的调用量

添加后再删除这个临时会话,代码如下

try
{
    res = await wxWorkService.AddContactWayForSingle(2, item.WxWorkUserId);
    item.IsRealNameForWxWork = true; // 如果没出错,那么说明已经激活及实名
    item.IsActivateForWxWork = true;
}
catch (ErrorJsonResultException ex)
{
    if (ex.JsonResult.ErrorCodeValue == 40098)//user real name has not been verified
    {
        item.IsRealNameForWxWork = false;
    }
    else if (ex.JsonResult.ErrorCodeValue == 41054)
    {
        item.IsActivateForWxWork = false;
        item.IsRealNameForWxWork = false; // 如果激活都没有,那么实名肯定也没有
    }
    else if (ex.JsonResult.ErrorCodeValue == 60111)
    {
        // 没找到用户 userid not found
    }
    else
    {
        throw ex;
    }
}
finally
{
    if (res != null && !string.IsNullOrEmpty(res.config_id))
    {
        await wxWorkService.DelContactWay(res.config_id);
    }
}