Skill: tobewin/china-bankcard (version 1.0.0)

--- name: china-bankcard description: 中国银行卡号解析与验证。Use when the user provides a Chinese bank card number and wants to identify the issuing bank, card type (借记卡/信用卡), card organization (银联/Visa/MasterCard/AmEx/JCB), card length, or validate the Luhn checksum. Covers top 20 Chinese banks. Fully offline — no network, no API key required. version: 1.0.0 license: MIT-0 metadata: openclaw: emoji: "💳" --- # 中国银行卡解析 China Bank Card Parser 解析银行卡号的发卡行、卡种、卡组织，并验证 Luhn 校验码。完全离线，零依赖。 ## 触发时机 - 用户提供银行卡号，询问是哪家银行、什么卡种 - "帮我验证一下这个银行卡号是否合法" - "这张卡是借记卡还是信用卡" - "这是银联卡还是 Visa 卡" - 表单校验、支付场景、银行卡信息核对 --- ## 第一步：格式预处理 ``` 1. 去除空格、横线等分隔符（如 6222-0200-0000-0000） 2. 验证全部为数字 3. 验证长度：国内银行卡一般为 16-19 位 - 13位：极少数旧卡 - 15位：AmEx（运通卡） - 16位：最常见（Visa/MasterCard/银联大部分） - 17位：少数银联卡 - 18位：部分银联借记卡 - 19位：农行、邮储等部分借记卡 ``` --- ## 第二步：卡组织识别（按首位数字） 根据 ISO/IEC 7812 规范，通过卡号首位或前几位快速识别卡组织： ``` 4 开头 → Visa（国际卡组织） 5 开头 → MasterCard（万事达，国际卡组织） 6 开头 → 通常为银联（UnionPay） 62 开头 → 银联标准卡（主流，可境外使用） 60/63-69 开头→ 银联或其他 34/37 开头 → American Express（美国运通，15位） 35 开头 → JCB（日本信用局） 9 开头 → 早期银联国内专用卡（仅限境内） ``` --- ## 第三步：BIN 号识别（前6位对应发卡行） ### 匹配规则 从卡号前6位（BIN）查找下表，**优先匹配更长的前缀**（部分银行使用7-8位BIN）。 ### 主流银行 BIN 号对照表 #### 中国工商银行（ICBC） ``` 借记卡（银联）： 620200 620302 620402 620403 620404 620406 621225 621226 621227 621228 621229 622200 622201 622202 622203 622208 622210 622211 622212 622213 622214 622215 622216 622217 622218 622219 622220 622221 622222 622223 622224 622225 622226 622227 622228 622229 622230 622231 622232 622233 622234 622235 622236 622237 622238 622239 信用卡（银联贷记卡）： 622230 622231 622232 622233 622234 622235 信用卡（Visa）： 427020 427030 信用卡（MasterCard）： 530990 信用卡（AmEx 运通）： 370246 370247 370248 370249 ``` #### 中国建设银行（CCB） ``` 借记卡（银联）： 621284 621467 621598 621700 622280 622700 622966 623211 625908 625910 436742（VISA借记卡） 信用卡（银联）： 622700 622702 622703 622707 信用卡（Visa）： 436745 458123 ``` #### 中国农业银行（ABC） ``` 借记卡（银联）： 622210 622211 622212 622213 622214 622220 622223 622225 622229 622230 622231 622232 622233 622234 622235 622236 622238 622239 622240 622848（农行常见） 103000（19位旧卡） 信用卡（银联）： 622750 622751 622752 622753 622754 ``` #### 中国银行（BOC） ``` 借记卡（银联）： 621660 621661 621662 621663 621665 622760 622761 622762 622763 622764 622765 622766 622767 622768 622770 信用卡（银联）： 622750 622752 622757 622758 622759 信用卡（Visa）： 400937 400938 409666 438088 信用卡（JCB）： 356833 356835 ``` #### 中国邮政储蓄银行（PSBC） ``` 借记卡（银联）： 621098 621099 622150 622151 622188 622450 622451 622452 622453 622454 622455 622456 622457 622458 622459 622460 622461 ``` #### 交通银行（BOCOM） ``` 借记卡（银联）： 622260 622261 622262 622263 622264 622265 信用卡（Visa）： 458123 402674（部分） 信用卡（MasterCard）： 521899 ``` #### 招商银行（CMB） ``` 借记卡（银联）： 622576 622578 622580 622581 622582 622583 628262 628362 信用卡（银联）： 622575 622577 622579 信用卡（Visa）： 439225 439226 439228 信用卡（MasterCard）： 552583 552584 552585 552586 552588 552589 545619 信用卡（JCB）： 356885 356886 356887 356888 356889 356890 信用卡（AmEx 运通）： 376968 376969（双币卡） ``` #### 中信银行（CITIC） ``` 借记卡（银联）： 622680 622688 622689 622690 信用卡（银联）： 622916 622918 622919 信用卡（Visa）： 400360 403391 403392 403393 404157 404158 404159 404171 404172 404173 404174 433666 433667 433668 433669 信用卡（MasterCard）： 514906 518212 520108 556617 558916 信用卡（AmEx 运通）： 376966 376969 ``` #### 中国光大银行（CEB） ``` 借记卡（银联）： 622303 622304 622305 622306 622307 信用卡（银联）： 303781 信用卡（贷记卡）： 356837 356838 356839 356840 ``` #### 兴业银行（CIB） ``` 借记卡（银联）： 622908 622909 622910 622911 622912 信用卡（Visa）： 451289 ``` #### 浦发银行（SPDB） ``` 借记卡（银联）： 622520 622521 622522 622523 622524 信用卡（银联）： 622525 622526 622527 ``` #### 民生银行（CMBC） ``` 借记卡（银联）： 622622 622623 622624 622625 622626 6226（早期16位卡） ``` #### 广发银行（GDB） ``` 借记卡（银联）： 622568 622569 622570 622571 622572 信用卡： 102033（18位旧卡） ``` #### 平安银行（PAB） ``` 借记卡（银联）： 622986 622987 622988 622989 622990 信用卡（银联）： 622155 622156 622157 622158 ``` #### 华夏银行（HXB） ``` 借记卡（银联）： 622630 622631 622632 622633 622634 ``` #### 北京银行（BOBJ） ``` 借记卡（银联）： 602969 622892（部分） ``` #### 上海银行（SHBANK） ``` 借记卡（银联）： 622892 信用卡（Visa）： 402674 信用卡（JCB）： 356827 356828 ``` #### 宁波银行（NBCB） ``` 借记卡（银联）： 622841 622842 622843 622844 ``` #### 南京银行（NJCB） ``` 借记卡（银联）： 622669 622670 622671 ``` #### 中原银行 / 郑州银行等城商行 ``` 如未在上表找到：告知用户为城商行/农商行/村镇银行， BIN数据库未收录，建议用户通过银行官方渠道核实 ``` --- ## 第四步：Luhn 校验算法（必须执行） 目前银联卡几乎都支持校验码算法，但极个别不支持，如杭州银行早期发行的西湖卡。 计算步骤： ``` 1. 从卡号最后一位（校验位）开始，从右往左编号： 位置1=最右，位置2=倒数第二，以此类推 2. 奇数位（1,3,5...）= 原值不变 偶数位（2,4,6...）= 原值 × 2 若结果 > 9，则减去 9（等价于十位与个位相加） 3. 所有结果求和 4. 总和 mod 10 = 0 → 校验通过 ≠ 0 → 校验失败 ``` 示例（卡号 6222020000000000）： ``` 位置: 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 数字: 6 2 2 2 0 2 0 0 0 0 0 0 0 0 0 0 偶位: ×2 ×2 ×2 ×2 ×2 ×2 ×2 ×2 结果: 12 2 4 2 0 2 0 0 0 0 0 0 0 0 0 0 >9?: -9 最终: 3 2 4 2 0 2 0 0 0 0 0 0 0 0 0 0 求和: 13 → 13 mod 10 = 3 ≠ 0 → 此为示例，实际需真实卡号 ``` --- ## 格式化输出 ### 识别成功 ``` 💳 银行卡解析结果 ━━━━━━━━━━━━━━━━━━━━ 卡号：6225 **** **** 5678（已脱敏） Luhn校验：✅ 合法 发卡行：招商银行 卡组织：银联（UnionPay） 卡种：借记卡 卡号长度：16位 可境外使用：是（62开头银联国际卡） ``` ### 信用卡示例 ``` 💳 银行卡解析结果 ━━━━━━━━━━━━━━━━━━━━ 卡号：5525 **** **** 5678（已脱敏） Luhn校验：✅ 合法 发卡行：招商银行 卡组织：MasterCard（万事达） 卡种：信用卡（贷记卡） 卡号长度：16位 可境外使用：是 ``` ### 未知发卡行 ``` 💳 银行卡解析结果 ━━━━━━━━━━━━━━━━━━━━ 卡号：6228 **** **** 5678（已脱敏） Luhn校验：✅ 合法 卡组织：银联（62开头） 发卡行：未知（BIN号未收录） 说明：可能为城商行、农商行或村镇银行发行的银联卡， 格式合法但发卡行信息需通过银行官方渠道核实 ``` ### 校验失败 ``` 💳 银行卡验证结果 ━━━━━━━━━━━━━━━━━━━━ 卡号：6222 **** **** 5679（已脱敏） Luhn校验：❌ 失败 原因：Luhn 校验码不通过，卡号可能录入有误 建议：请核对原始卡片上的号码，注意不要漏位或错位 注意：极少数银行早期发行的卡不使用Luhn算法，如确认卡号无误请忽略此提示 ``` --- ## 隐私处理规则 输出时对卡号脱敏，保留前4位和后4位： ``` 原始：6225880187523456 展示：6225 **** **** 3456 ``` --- ## 注意事项 - 本 skill 收录了国内主流20家银行的常见BIN号，城商行/农商行/村镇银行的BIN可能未收录 - Luhn校验通过≠卡号真实存在，仅代表格式符合算法规则 - 银联卡几乎都支持Luhn算法，但极个别早期卡例外 - 2017年央行要求新发银联卡统一使用62开头号段，9开头老卡仅限境内使用 - BIN号数据库持续更新，新发卡种可能尚未收录


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