wx-rust-common 0.1.0

WxRust 公共基础设施:错误模型、token/执行引擎、HTTP 抽象、会话、重复检查(对应 weixin-java-common)
Documentation
//! 企业微信全局返回码错误信息表。
//!
//! 对应 Java `me.chanjar.weixin.common.error.WxCpErrorMsgEnum`,
//! 由 `scripts/gen_error_msg_enums.py` 从 Java 源码自动生成(281 条错误码)。

/// 按错误码查找企业微信中文错误信息。
///
/// # 参数
/// - `code`:微信错误码
///
/// # 返回
/// 错误码对应的中文信息;未收录时返回 `None`。
pub fn find_msg_by_code(code: i32) -> Option<&'static str> {
    match code {
        -1 => Some("系统繁忙;服务器暂不可用,建议稍候重试。建议重试次数不超过3次。"),
        0 => Some("请求成功;接口调用成功"),
        40001 => Some("不合法的secret参数;secret在应用详情/通讯录管理助手可查看"),
        40003 => Some("无效的UserID"),
        40004 => Some("不合法的媒体文件类型;不满足系统文件要求。参考:上传的媒体文件限制"),
        40005 => Some("不合法的type参数;合法的type取值,参考:上传临时素材"),
        40006 => Some("不合法的文件大小;系统文件要求,参考:上传的媒体文件限制"),
        40007 => Some("不合法的media_id参数"),
        40008 => Some("不合法的msgtype参数;合法的msgtype取值,参考:消息类型"),
        40009 => Some("上传图片大小不是有效值;图片大小的系统限制,参考上传的媒体文件限制"),
        40011 => Some("上传视频大小不是有效值;视频大小的系统限制,参考上传的媒体文件限制"),
        40013 => Some("不合法的CorpID;需确认CorpID是否填写正确,在 web管理端-设置 可查看"),
        40014 => Some("不合法的access_token"),
        40016 => Some("不合法的按钮个数;菜单按钮1-3个"),
        40017 => Some("不合法的按钮类型;支持的类型,参考:按钮类型"),
        40018 => Some("不合法的按钮名字长度;长度应不超过16个字节"),
        40019 => Some("不合法的按钮KEY长度;长度应不超过128字节"),
        40020 => Some("不合法的按钮URL长度;长度应不超过1024字节"),
        40022 => Some("不合法的子菜单级数;只能包含一级菜单和二级菜单"),
        40023 => Some("不合法的子菜单按钮个数;子菜单按钮1-5个"),
        40024 => Some("不合法的子菜单按钮类型;支持的类型,参考:按钮类型"),
        40025 => Some("不合法的子菜单按钮名字长度;支持的类型,参考:按钮类型"),
        40026 => Some("不合法的子菜单按钮KEY长度;长度应不超过60个字节"),
        40027 => Some("不合法的子菜单按钮URL长度;长度应不超过1024字节"),
        40029 => Some("不合法的oauth_code"),
        40031 => Some("不合法的UserID列表;指定的UserID列表,至少存在一个UserID不在通讯录中"),
        40032 => Some("不合法的UserID列表长度"),
        40033 => Some("不合法的请求字符;不能包含\\uxxxx格式的字符"),
        40035 => Some("不合法的参数"),
        40050 => Some("chatid不存在;会话需要先创建后,才可修改会话详情或者发起聊天"),
        40054 => Some("不合法的子菜单url域名"),
        40055 => Some("不合法的菜单url域名"),
        40056 => Some("不合法的agentid"),
        40057 => Some("不合法的callbackurl或者callbackurl验证失败;可自助到开发调试工具重现"),
        40058 => Some("不合法的参数;传递参数不符合系统要求,需要参照具体API接口说明"),
        40059 => Some("不合法的上报地理位置标志位;开关标志位只能填 0 或者 1"),
        40063 => Some("参数为空"),
        40066 => Some("不合法的部门列表;部门列表为空,或者至少存在一个部门ID不存在于通讯录中"),
        40068 => Some("不合法的标签ID;标签ID未指定,或者指定的标签ID不存在"),
        40070 => Some("指定的标签范围结点全部无效"),
        40071 => Some("不合法的标签名字;标签名字已经存在"),
        40072 => Some("不合法的标签名字长度;不允许为空,最大长度限制为32个字(汉字或英文字母)"),
        40073 => Some("不合法的openid;openid不存在,需确认获取来源"),
        40074 => Some("news消息不支持保密消息类型;图文消息支持保密类型需改用mpnews"),
        40077 => Some("不合法的pre_auth_code参数;预授权码不存在,参考:获取预授权码"),
        40078 => Some("不合法的auth_code参数;需确认获取来源,并且只能消费一次"),
        40080 => Some("不合法的suite_secret;套件secret可在第三方管理端套件详情查看"),
        40082 => Some("不合法的suite_token"),
        40083 => Some("不合法的suite_id;suite_id不存在"),
        40084 => Some("不合法的permanent_code参数"),
        40085 => Some("不合法的的suite_ticket参数;suite_ticket不存在或者已失效"),
        40086 => Some("不合法的第三方应用appid;至少有一个不存在应用id"),
        40088 => Some("jobid不存在;请检查 jobid 来源"),
        40089 => Some(
            "批量任务的结果已清理;系统仅保存最近5次批量任务的结果。可在通讯录查看实际导入情况",
        ),
        40091 => Some("secret不合法;可能用了别的企业的secret"),
        40092 => Some("导入文件存在不合法的内容"),
        40093 => Some("不合法的jsapi_ticket参数;ticket已失效,或者拼写错误"),
        40094 => Some(
            "不合法的URL;缺少主页URL参数,或者URL不合法(链接需要带上协议头,以 http:// 或者 https:// 开头)",
        ),
        40096 => Some("不合法的外部联系人userid"),
        41001 => Some("缺少access_token参数"),
        41002 => Some("缺少corpid参数"),
        41004 => Some("缺少secret参数"),
        41006 => Some("缺少media_id参数;media_id为调用接口必填参数,请确认是否有传递"),
        41008 => Some("缺少auth code参数"),
        41009 => Some("缺少userid参数"),
        41010 => Some("缺少url参数"),
        41011 => Some("缺少agentid参数"),
        41016 => Some("缺少title参数;发送图文消息,标题是必填参数。请确认参数是否有传递。"),
        41017 => Some("缺少tagid参数"),
        41019 => Some("缺少 department 参数"),
        41021 => Some("缺少suite_id参数"),
        41022 => Some("缺少suite_access_token参数"),
        41023 => Some("缺少suite_ticket参数"),
        41024 => Some("缺少secret参数"),
        41025 => Some("缺少permanent_code参数"),
        41033 => Some("缺少 description 参数;发送文本卡片消息接口,description 是必填字段"),
        42001 => Some("access_token已过期;access_token有时效性,需要重新获取一次"),
        42007 => Some("pre_auth_code已过期;pre_auth_code有时效性,需要重新获取一次"),
        42009 => Some("suite_access_token已过期;suite_access_token有时效性,需要重新获取一次"),
        43004 => Some(
            "指定的userid未绑定微信或未关注微信插件;需要成员使用微信登录企业微信或者关注微信插件才能获取openid",
        ),
        44001 => Some("多媒体文件为空;上传格式参考:上传临时素材,确认header和body的内容正确。"),
        44004 => Some("文本消息content参数为空;发文本消息content为必填参数,且不能为空"),
        45001 => Some("多媒体文件大小超过限制;图片不可超过5M;音频不可超过5M;文件不可超过20M"),
        45002 => Some("消息内容大小超过限制"),
        45004 => Some(
            "应用description参数长度不符合系统限制;设置应用若带有description参数,则长度必须为4至120个字符",
        ),
        45007 => Some("语音播放时间超过限制;语音播放时长不能超过60秒"),
        45008 => Some("图文消息的文章数量不符合系统限制;图文消息的文章数量不能超过8条"),
        45009 => Some("接口调用超过限制"),
        45022 => Some(
            "应用name参数长度不符合系统限制;设置应用若带有name参数,则不允许为空,且不超过32个字符",
        ),
        45024 => Some("帐号数量超过上限"),
        45026 => Some("触发删除用户数的保护;限制参考:全量覆盖成员"),
        45032 => Some("图文消息author参数长度超过限制;最长64个字节"),
        45033 => Some("接口并发调用超过限制"),
        46003 => Some("菜单未设置;菜单需发布后才能获取到数据"),
        46004 => Some("指定的用户不存在;需要确认指定的用户存在于通讯录中"),
        48002 => Some("API接口无权限调用"),
        48003 => Some("不合法的suite_id;确认suite_access_token由指定的suite_id生成"),
        48004 => Some("授权关系无效;可能是无授权或授权已被取消"),
        48005 => Some("API接口已废弃;接口已不再支持,建议改用新接口或者新方案"),
        50001 => Some("redirect_url未登记可信域名"),
        50002 => Some("成员不在权限范围;请检查应用或管理组的权限范围"),
        50003 => Some("应用已禁用;禁用的应用无法使用API接口。可在”管理端-企业应用”启用应用"),
        60001 => Some("部门长度不符合限制;部门名称不能为空且长度不能超过32个字"),
        60003 => Some("部门ID不存在;需要确认部门ID是否有带,并且存在通讯录中"),
        60004 => Some("父部门不存在;需要确认父亲部门ID是否有带,并且存在通讯录中"),
        60005 => Some("部门下存在成员;不允许删除有成员的部门"),
        60006 => Some("部门下存在子部门;不允许删除有子部门的部门"),
        60007 => Some("不允许删除根部门"),
        60008 => Some("部门已存在;部门ID或者部门名称已存在"),
        60009 => Some("部门名称含有非法字符;不能含有 \\ :?*“< >| 等字符"),
        60010 => Some("部门存在循环关系"),
        60011 => Some("指定的成员/部门/标签参数无权限"),
        60012 => Some("不允许删除默认应用;默认应用的id为0"),
        60020 => Some("访问ip不在白名单之中;请确认访问ip是否在服务商白名单IP列表"),
        60028 => Some(
            "不允许修改第三方应用的主页 URL;第三方应用类型,不允许通过接口修改该应用的主页 URL",
        ),
        60102 => Some("UserID已存在"),
        60103 => Some("手机号码不合法;长度不超过32位,字符仅支持数字,加号和减号"),
        60104 => Some(
            "手机号码已存在;同一个企业内,成员的手机号不能重复。建议更换手机号,或者更新已有的手机记录。",
        ),
        60105 => Some("邮箱不合法;长度不超过64位,且为有效的email格式"),
        60106 => Some(
            "邮箱已存在;同一个企业内,成员的邮箱不能重复。建议更换邮箱,或者更新已有的邮箱记录。",
        ),
        60107 => Some(
            "微信号不合法;微信号格式由字母、数字、”-“、”_“组成,长度为 3-20 字节,首字符必须是字母或”-“或”_“",
        ),
        60110 => Some("用户所属部门数量超过限制;用户同时归属部门不超过20个"),
        60111 => Some("UserID不存在;UserID参数为空,或者不存在通讯录中"),
        60112 => Some("成员name参数不合法;不能为空,且不能超过64字符"),
        60123 => Some("无效的部门id;部门不存在通讯录中"),
        60124 => Some("无效的父部门id;父部门不存在通讯录中"),
        60125 => Some("非法部门名字;不能为空,且不能超过64字节,且不能含有\\:*?”< >|等字符"),
        60127 => Some("缺少department参数"),
        60129 => Some("成员手机和邮箱都为空;成员手机和邮箱至少有个非空"),
        72023 => Some("发票已被其他公众号锁定"),
        72024 => Some("发票状态错误;reimburse_status状态错误,参考:更新发票状态"),
        72037 => Some("存在发票不属于该用户;只能批量更新该openid的发票,参考:批量更新发票状态"),
        80001 => Some("可信域名不正确,或者无ICP备案"),
        81001 => Some("部门下的结点数超过限制(3W)"),
        81002 => Some("部门最多15层"),
        81011 => Some("无权限操作标签"),
        81013 => Some("UserID、部门ID、标签ID全部非法或无权限"),
        81014 => Some("标签添加成员,单次添加user或party过多"),
        82001 => Some("指定的成员/部门/标签全部无效"),
        82002 => Some("不合法的PartyID列表长度;发消息,单次不能超过100个部门"),
        82003 => Some("不合法的TagID列表长度;发消息,单次不能超过100个标签"),
        84014 => Some("成员票据过期"),
        84015 => {
            Some("成员票据无效;确认user_ticket参数来源是否正确。参考接口:根据code获取成员信息")
        }
        84019 => Some("缺少templateid参数"),
        84020 => Some("templateid不存在;确认参数是否有带,并且已创建"),
        84021 => Some("缺少register_code参数"),
        84022 => Some("无效的register_code参数"),
        84023 => Some("不允许调用设置通讯录同步完成接口"),
        84024 => Some("无注册信息"),
        84025 => Some("不符合的state参数;必须是[a-zA-Z0-9]的参数值,长度不可超过128个字节"),
        84052 => Some("缺少caller参数"),
        84053 => Some("缺少callee参数"),
        84054 => Some("缺少auth_corpid参数"),
        84055 => Some("超过拨打公费电话频率。排查方法:同一个客服5秒内只能调用api拨打一次公费电话"),
        84056 => Some("被拨打用户安装应用时未授权拨打公费电话权限"),
        84057 => Some("公费电话余额不足"),
        84058 => Some("caller 呼叫号码不支持"),
        84059 => Some("号码非法"),
        84060 => Some("callee 呼叫号码不支持"),
        84061 => Some("不存在外部联系人的关系"),
        84062 => Some("未开启公费电话应用"),
        84063 => Some("caller不存在"),
        84064 => Some("callee不存在"),
        84065 => Some("caller跟callee电话号码一致。排查方法:不允许自己拨打给自己"),
        84066 => Some(
            "服务商拨打次数超过限制。排查方法:单个企业管理员,在一天(以上午10:00为起始时间)内,对应单个服务商,只能被呼叫【4】次。",
        ),
        84067 => Some(
            "管理员收到的服务商公费电话个数超过限制。排查方法:单个企业管理员,在一天(以上午10:00为起始时间)内,一共只能被【3】个服务商成功呼叫。",
        ),
        84069 => Some("拨打方被限制拨打公费电话"),
        84070 => Some("不支持的电话号码。排查方法:拨打方或者被拨打方电话号码不支持"),
        84071 => Some("不合法的外部联系人授权码。排查方法:非法或者已经消费过"),
        84072 => Some("应用未配置客服"),
        84073 => Some("客服userid不在应用配置的客服列表中"),
        84074 => Some("没有外部联系人权限"),
        84075 => Some("不合法或过期的authcode"),
        84076 => Some("缺失authcode"),
        84077 => Some("订单价格过高,无法受理"),
        84078 => Some("购买人数不正确"),
        84079 => Some("价格策略不存在"),
        84080 => Some("订单不存在"),
        84081 => Some("存在未支付订单"),
        84082 => Some("存在申请退款中的订单"),
        84083 => Some("非服务人员"),
        84084 => Some("非跟进用户"),
        84085 => Some("应用已下架"),
        84086 => Some("订单人数超过可购买最大人数"),
        84087 => Some("打开订单支付前禁止关闭订单"),
        84088 => Some("禁止关闭已支付的订单"),
        84089 => Some("订单已支付"),
        84090 => Some("缺失user_ticket"),
        84091 => Some("订单价格不可低于下限"),
        84092 => Some("无法发起代下单操作"),
        84093 => Some("代理关系已占用,无法代下单"),
        84094 => Some("该应用未配置代理分润规则,请先联系应用服务商处理"),
        84095 => Some("免费试用版,无法扩容"),
        84096 => Some("免费试用版,无法续期"),
        84097 => Some("当前企业有未处理订单"),
        84098 => Some("固定总量,无法扩容"),
        84099 => Some("非购买状态,无法扩容"),
        84100 => Some("未购买过此应用,无法续期"),
        84101 => Some("企业已试用付费版本,无法全新购买"),
        84102 => Some("企业当前应用状态已过期,无法扩容"),
        84103 => Some("仅可修改未支付订单"),
        84104 => Some("订单已支付,无法修改"),
        84105 => Some("订单已被取消,无法修改"),
        84106 => Some("企业含有该应用的待支付订单,无法代下单"),
        84107 => Some("企业含有该应用的退款中订单,无法代下单"),
        84108 => Some("企业含有该应用的待生效订单,无法代下单"),
        84109 => Some("订单定价不能未0"),
        84110 => Some("新安装应用不在试用状态,无法升级为付费版"),
        84111 => Some("无足够可用优惠券"),
        84112 => Some("无法关闭未支付订单"),
        84113 => Some("无付费信息"),
        84114 => Some("虚拟版本不支持下单"),
        84115 => Some("虚拟版本不支持扩容"),
        84116 => Some("虚拟版本不支持续期"),
        84117 => Some("在虚拟正式版期内不能扩容"),
        84118 => Some("虚拟正式版期内不能变更版本"),
        84119 => Some("当前企业未报备,无法进行代下单"),
        84120 => Some("当前应用版本已删除"),
        84121 => Some("应用版本已删除,无法扩容"),
        84122 => Some("应用版本已删除,无法续期"),
        84123 => Some("非虚拟版本,无法升级"),
        84124 => Some("非行业方案订单,不能添加部分应用版本的订单"),
        84125 => Some("购买人数不能少于最少购买人数"),
        84126 => Some("购买人数不能多于最大购买人数"),
        84127 => Some("无应用管理权限"),
        84128 => Some("无该行业方案下全部应用的管理权限"),
        84129 => Some("付费策略已被删除,无法下单"),
        84130 => Some("订单生效时间不合法"),
        84200 => {
            Some("文件转译解析错误。排查方法:只支持utf8文件转译,可能是不支持的文件类型或者格式")
        }
        85002 => Some("包含不合法的词语"),
        85004 => Some("每企业每个月设置的可信域名不可超过20个"),
        85005 => Some("可信域名未通过所有权校验"),
        86001 => Some("参数 chatid 不合法"),
        86003 => Some("参数 chatid 不存在"),
        86004 => Some("参数 群名不合法"),
        86005 => Some("参数 群主不合法"),
        86006 => Some("群成员数过多或过少"),
        86007 => Some("不合法的群成员"),
        86008 => Some("非法操作非自己创建的群"),
        86216 => Some("存在非法会话成员ID"),
        86217 => Some("会话发送者不在会话成员列表中;会话的发送者,必须是会话的成员列表之一"),
        86220 => Some("指定的会话参数不合法"),
        90001 => Some("未认证摇一摇周边"),
        90002 => Some("缺少摇一摇周边ticket参数"),
        90003 => Some("摇一摇周边ticket参数不合法"),
        90100 => Some("非法的对外属性类型"),
        90101 => Some("对外属性:文本类型长度不合法;文本长度不可超过12个UTF8字符"),
        90102 => Some("对外属性:网页类型标题长度不合法;标题长度不可超过12个UTF8字符"),
        90103 => Some("对外属性:网页url不合法"),
        90104 => Some("对外属性:小程序类型标题长度不合法;标题长度不可超过12个UTF8字符"),
        90105 => Some("对外属性:小程序类型pagepath不合法"),
        90106 => Some("对外属性:请求参数不合法"),
        91040 => Some("获取ticket的类型无效"),
        301002 => Some("无权限操作指定的应用"),
        301005 => Some(
            "不允许删除创建者;创建者不允许从通讯录中删除。如果需要删除该成员,需要先在WEB管理端转移创建者身份。",
        ),
        301012 => Some("参数 position 不合法;长度不允许超过128个字符"),
        301013 => Some("参数 telephone 不合法;telephone必须由1-32位的纯数字或’-‘号组成。"),
        301014 => Some(
            "参数 english_name 不合法;参数如果有传递,不允许为空字符串,同时不能超过64字节,只能是由字母、数字、点(.)、减号(-)、空格或下划线(_)组成",
        ),
        301015 => Some(
            "参数 mediaid 不合法;请检查 mediaid 来源,应该通过上传临时素材的图片类型获得mediaid",
        ),
        301016 => Some("上传语音文件不符合系统要求;语音文件的系统限制,参考上传的媒体文件限制"),
        301017 => Some("上传语音文件仅支持AMR格式;语音文件的系统限制,参考上传的媒体文件限制"),
        301021 => Some("参数 userid 无效;至少有一个userid不存在于通讯录中"),
        301022 => Some("获取打卡数据失败;系统失败,可重试处理"),
        301023 => Some("useridlist非法或超过限额;列表数量不能为0且不超过100"),
        301024 => Some(
            "获取打卡记录时间间隔超限;保证开始时间大于0 且结束时间大于 0 且结束时间大于开始时间,且间隔少于93天",
        ),
        301025 => Some("提交审批单请求参数错误"),
        301036 => Some("不允许更新该用户的userid"),
        301055 => Some("无审批应用权限,或者提单者不在审批应用/自建应用的可见范围"),
        301056 => Some("审批应用已停用"),
        301057 => Some("通用错误码,提交审批单内部接口失败"),
        301069 => Some("输入userid无对应成员"),
        301070 => Some("系统错误,请稍后再试"),
        301071 => Some("企业内有其他人员有相似人脸,此情况下人脸仍然会录入成功"),
        301072 => Some("企业内有其他人员有相似人脸,此情况下人脸仍然会录入成功"),
        301075 => Some("输入参数错误"),
        302003 => Some("批量导入任务的文件中userid有重复"),
        302004 => Some(
            "组织架构不合法(1不是一棵树,2 多个一样的partyid,3 partyid空,4 partyid name 空,5 同一个父节点下有两个子节点 部门名字一样 可能是以上情况,请一一排查)",
        ),
        302005 => Some("批量导入系统失败,请重新尝试导入"),
        302006 => Some("批量导入任务的文件中partyid有重复"),
        302007 => Some("批量导入任务的文件中,同一个部门下有两个子部门名字一样"),
        2000002 => Some("CorpId参数无效;指定的CorpId不存在"),
        _ => None,
    }
}