Skill: tobewin/china-social-credit (version 1.0.0)

--- name: china-social-credit description: 中国统一社会信用代码解析与验证。Use when the user provides a Chinese Unified Social Credit Code (统一社会信用代码) and wants to validate its checksum, identify the registration authority, organization type, or registered location. Based on GB 32100-2015 national standard. Fully offline — no network, no API key required. version: 1.0.0 license: MIT-0 metadata: openclaw: emoji: "🏢" --- # 统一社会信用代码解析 Unified Social Credit Code Parser 解析企业/组织统一社会信用代码，验证校验码，识别登记机关、机构类型、注册地。 依据 GB 32100-2015 国家强制性标准，完全离线，零依赖。 ## 触发时机 - 用户提供统一社会信用代码，要求验证或解析 - "帮我验证一下这个营业执照号码" - "这个信用代码是哪里注册的什么类型企业" - 合同审核、供应商核实、企业信息录入场景 --- ## 代码结构（18位，GB 32100-2015） ``` [第1位] 登记管理部门代码 [第2位] 机构类别代码 [第3-8位] 登记管理机关行政区划码（6位） [第9-17位] 主体标识码（组织机构代码，9位） [第18位] 校验码 ``` 字符集：阿拉伯数字和大写英文字母，不使用 I、O、Z、S、V 五个字母（防止混淆）。 --- ## 第一步：格式预处理 ``` 1. 去除空格、横线等分隔符 2. 统一转为大写 3. 长度必须为 18 位 4. 每位字符必须为 0-9 或大写字母，且不含 I、O、Z、S、V ``` --- ## 第二步：登记管理部门代码（第1位） ``` 1 机构编制（党政机关、事业单位） 2 外交部 3 司法部（律师事务所等） 4 （保留） 5 民政部（社会团体、基金会、民办非企业单位） 6 旅游局 7 宗教事务局 8 中国人民银行（金融机构） 9 工商/市场监督管理（企业，最常见） A 税务局 B （保留） C 农业农村部 D 文化和旅游部 E 统计局 F 高教委（高校） G （保留） H 海关总署 J 质检总局 K 银保监会 L （保留） M 证监会 N （保留） P 邮政局 Q （保留） R （保留） T （保留） U （保留） W （保留） X （保留） Y 其他 ``` **最常见：9=工商注册企业（营业执照），1=机关事业单位，5=民政登记社会组织** --- ## 第三步：机构类别代码（第2位） 不同登记管理部门下的类别各有不同，以最常见的工商（第1位=9）为例： ``` 第1位=9（工商/市场监管）时，第2位含义： 1 企业 2 个体工商户（少见，一般不发放统一代码） 3 农村承包经营户 9 其他 第1位=1（机构编制）时，第2位含义： 1 机关单位 2 事业单位 3 中央编办直接管理机构编制的群众团体 第1位=5（民政）时，第2位含义： 1 社会团体 2 民办非企业单位 3 基金会 9 其他 ``` --- ## 第四步：行政区划码（第3-8位） 第3-8位为6位行政区划代码，对应登记机关所在地（不一定是企业经营地）： ``` 前2位 = 省级代码： 11 北京 12 天津 13 河北 14 山西 15 内蒙古 21 辽宁 22 吉林 23 黑龙江 31 上海 32 江苏 33 浙江 34 安徽 35 福建 36 江西 37 山东 41 河南 42 湖北 43 湖南 44 广东 45 广西 46 海南 50 重庆 51 四川 52 贵州 53 云南 54 西藏 61 陕西 62 甘肃 63 青海 64 宁夏 65 新疆 71 台湾 81 香港 82 澳门 后4位 = 市级+区县级代码（参照 GB/T 2260 国家标准） 示例： 110000 北京市 110100 北京市市辖区 310115 上海市浦东新区 440300 广东省深圳市 350100 福建省福州市 ``` --- ## 第五步：校验码验证（第18位，必须执行） 依据 GB 32100-2015 标准，校验码计算公式：C18 = 31 - MOD(∑Ci×Wi, 31) ### 字符值对照表（Ci） ``` 字符 值 字符 值 字符 值 字符 值 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 A 10 B 11 C 12 D 13 E 14 F 15 G 16 H 17 J 18 K 19 L 20 M 21 N 22 P 23 Q 24 R 25 T 26 U 27 W 28 X 29 Y 30 ``` 注意：不使用 I、O、Z、S、V，字符值跳过这5个字母。 ### 加权因子（Wi） 前17位的加权因子依次为：1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28 （由公式 Wi = MOD(3^(i-1), 31) 计算得出） ### 计算步骤 ``` 1. 取前17位，每位按字符值对照表转换为数值 Ci 2. 每位 Ci 乘以对应加权因子 Wi，求所有乘积之和 S 3. 计算 R = MOD(S, 31) 4. 计算 C18_value = 31 - R 5. 特殊处理： - 若 C18_value = 31 → 校验码为 0（31 mod 31 = 0） - 若 C18_value = 30 → 校验码为 Y - 其他值 → 按字符值对照表反查对应字符 6. 与第18位实际字符比对 ``` ### 官方示例验证（GB 32100-2015 附录） 官方示例：前17位为 91350100M000100Y4，计算其第18位校验码 ``` 位置 字符 字符值 加权因子 乘积 1 9 9 1 9 2 1 1 3 3 3 3 3 9 27 4 5 5 27 135 5 0 0 19 0 6 1 1 26 26 7 0 0 16 0 8 0 0 17 0 9 M 21 20 420 10 0 0 29 0 11 0 0 25 0 12 0 0 13 0 13 1 1 8 8 14 0 0 24 0 15 0 0 10 0 16 Y 30 30 900 17 4 4 28 112 S = 9+3+27+135+0+26+0+0+420+0+0+0+8+0+0+900+112 = 1640 R = MOD(1640, 31) = 1640 - 52×31 = 1640 - 1612 = 28 C18_value = 31 - 28 = 3 → 字符值3 → 校验码为 "3" 完整代码：91350100M000100Y43 ✅ ``` --- ## 格式化输出 ### 验证通过 ``` 🏢 统一社会信用代码解析 ━━━━━━━━━━━━━━━━━━━━ 代码：91350100M000100Y43 校验：✅ 合法（GB 32100-2015） 解析结果： 登记机关：工商/市场监督管理（9） 机构类别：企业（1） 注册地区：福建省福州市（350100） 组织机构代码：M000100Y4（第9-17位） 校验码：3 ✅ ``` ### 验证失败 ``` 🏢 统一社会信用代码验证 ━━━━━━━━━━━━━━━━━━━━ 代码：91350100M000100Y45 校验：❌ 无效 原因：校验码错误（填写了5，计算应为3） 建议：请核对营业执照原件上的代码是否录入正确 ``` ### 常见错误类型 ``` ❌ 长度不是18位 → 提示正确长度 ❌ 含非法字符I/O/Z/S/V → 指出哪个位置字符不合法 ❌ 第1位代码不在有效范围 → 提示有效的登记部门代码 ❌ 行政区划码前2位不合法 → 提示省份代码不存在 ❌ 校验码错误 → 给出正确校验码供核对 ``` --- ## 注意事项 - 统一社会信用代码于2015年10月起全面推行，替代原工商注册号、组织机构代码证、税务登记证（"三证合一"） - 校验通过≠该企业真实存在或处于正常经营状态，如需核实请访问国家企业信用信息公示系统（gsxt.gov.cn） - 部分历史遗留的旧版营业执照号码（15位或18位非标格式）不适用本规则 - 行政区划码代表**登记机关所在地**，不是企业实际经营地址 - 本 skill 仅做格式和校验码验证，不联网查询企业信息


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)