Skip to main content

enterprise-three-factor-auth

验证企业名称、统一社会信用代码和法人姓名三要素是否一致,适用于企业身份核实、工商信息验证等场景

Source facts

Repository
qq5855144/GitHubM
Last source activity
May 30, 2026 at 04:51
Detected SKILL.md language
Chinese
Stars
29
Forks
8

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
enterprise-three-factor-auth
description
验证企业名称、统一社会信用代码和法人姓名三要素是否一致,适用于企业身份核实、工商信息验证等场景
license
MIT
## 能力概述 调用企业三要素验证接口,传入企业名称、统一社会信用代码和法人姓名,校验三要素是否与工商信息一致,并返回具体不一致项。 - **Endpoint**: `GET https://app-bo4w33bsdqm9-api-Aa2PZnjE80BL-gateway.appmiaoda.com/company_three/get` - **认证方式**: platform_managed(密钥由平台注入,读取 `INTEGRATIONS_API_KEY`) - **Content-Type**: `application/json;charset=UTF-8` - **响应格式**: JSON ### 请求参数 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | `companyName` | string | 是 | 公司名称 | | `creditNo` | string | 是 | 统一社会信用代码 | | `legalPerson` | string | 是 | 法人姓名 | ### 响应字段说明 **成功响应(`success: true`, `code: 200`):** | 字段路径 | 类型 | 说明 | |----------|------|------| | `success` | boolean | 请求成功标识,`true` 为成功 | | `code` | number | 状态码,成功为 200 | | `msg` | string | 状态描述 | | `data.order_no` | string | 订单号 | | `data.result` | number | 验证结果码(见下表) | | `data.desc` | string | 结果描述 | **`result` 结果对照表:** | result | 说明 | |--------|------| | 0 | 一致 | | 1 | 企业名称不一致 | | 2 | 社会统一信用代码不一致 | | 3 | 法人名称不一致 | | 9 | 不一致 | **失败响应(`success: false`):** | 字段路径 | 类型 | 说明 | |----------|------|------| | `success` | boolean | `false` | | `code` | number | 错误状态码(如 400) | | `msg` | string | 错误描述(如"入参错误") | | `data` | object | 空对象 `{}` | ### 响应示例 ```json { "msg": "成功", "success": true, "code": 200, "data": { "order_no": "426621381069965596", "result": 0, "desc": "一致" } } ``` --- ## 生成期用法(Agent 直接调用) ```typescript const apiKey = process.env["INTEGRATIONS_API_KEY"]!; // platform_managed 密钥由平台注入 interface CompanyThreeFactorResult { order_no: string; result: number; desc: string; } /** * 验证企业三要素(企业名称、统一社会信用代码、法人姓名)是否与工商信息一致。 * @param companyName - 公司名称 * @param creditNo - 统一社会信用代码 * @param legalPerson - 法人姓名 * @returns 验证结果,含 result 码和描述 */ async function verifyCompanyThreeFactors( companyName: string, creditNo: string, legalPerson: string ): Promise<CompanyThreeFactorResult> { const params = new URLSearchParams({ companyName, creditNo, legalPerson }); const response = await fetch( `https://app-bo4w33bsdqm9-api-Aa2PZnjE80BL-gateway.appmiaoda.com/company_three/get?${params.toString()}`, { method: "GET", headers: { "Content-Type": "application/json;charset=UTF-8", "X-Gateway-Authorization": `Bearer ${apiKey}`, }, } ); if (!response.ok) throw new Error(`HTTP error: ${response.status}`); const json = await response.json(); if (!json.success || json.code !== 200) { throw new Error(`API error ${json.code}: ${json.msg}`); } return json.data; } // 示例调用 const result = await verifyCompanyThreeFactors( "示例公司", "91110000000000000X", "张三" ); console.log(`验证结果: ${result.result} - ${result.desc}`); // result === 0 表示三要素一致 ``` --- ## 生成后用法(应用内通过 Edge Function 调用) ### Edge Function ```typescript // edge-functions/company-three-factor-auth.ts import { serve } from "https://deno.land/std/http/server.ts"; serve(async (req: Request): Promise<Response> => { if (req.method !== "POST") { return new Response("Method Not Allowed", { status: 405 }); } // --- 解析客户端请求 --- let companyName: string; let creditNo: string; let legalPerson: string; try { const body = await req.json(); companyName = body.companyName; creditNo = body.creditNo; legalPerson = body.legalPerson; if (!companyName) throw new Error("Missing companyName"); if (!creditNo) throw new Error("Missing creditNo"); if (!legalPerson) throw new Error("Missing legalPerson"); } catch { return new Response(JSON.stringify({ error: "Invalid request body" }), { status: 400, headers: { "Content-Type": "application/json" }, }); } // --- 注入平台密钥(严禁暴露给客户端)--- const apiKey = Deno.env.get("INTEGRATIONS_API_KEY"); if (!apiKey) { return new Response(JSON.stringify({ error: "Server configuration error" }), { status: 500, headers: { "Content-Type": "application/json" }, }); } // --- 调用上游接口 --- const params = new URLSearchParams({ companyName, creditNo, legalPerson }); const upstream = await fetch( `https://app-bo4w33bsdqm9-api-Aa2PZnjE80BL-gateway.appmiaoda.com/company_three/get?${params.toString()}`, { method: "GET", headers: { "Content-Type": "application/json;charset=UTF-8", "X-Gateway-Authorization": `Bearer ${apiKey}`, }, } ); // 透传配额/余额错误 if (upstream.status === 429 || upstream.status === 402) { const errText = await upstream.text(); return new Response(errText, { status: upstream.status, headers: { "Content-Type": "application/json" }, }); } if (!upstream.ok) { return new Response( JSON.stringify({ error: `Upstream error: ${upstream.status}` }), { status: 502, headers: { "Content-Type": "application/json" } } ); } const data = await upstream.json(); return new Response(JSON.stringify(data), { status: 200, headers: { "Content-Type": "application/json" }, }); }); ``` ### 前端调用代码 Web 和 MiniProgram 均可使用 supabase client 调用,响应为标准 JSON,无平台差异。 **推荐方式(supabase client 可用时):** ```typescript interface CompanyThreeFactorResult { order_no: string; result: number; desc: string; } /** * 通过 Edge Function 验证企业三要素。 * @param companyName - 公司名称 * @param creditNo - 统一社会信用代码 * @param legalPerson - 法人姓名 * @returns 验证结果,含 result 码和描述 */ async function verifyCompanyThreeFactors( companyName: string, creditNo: string, legalPerson: string ): Promise<CompanyThreeFactorResult> { const { data, error } = await supabase.functions.invoke("company-three-factor-auth", { body: { companyName, creditNo, legalPerson }, }); if (error) throw error; if (!data.success || data.code !== 200) { throw new Error(`API 错误 ${data.code}:${data.msg}`); } return data.data; } ``` **备用方式(无法使用 supabase client 时):** ```typescript /** * 通过原生 fetch 调用企业三要素 Edge Function。 * @param companyName - 公司名称 * @param creditNo - 统一社会信用代码 * @param legalPerson - 法人姓名 * @returns 验证结果,含 result 码和描述 */ async function verifyCompanyThreeFactors( companyName: string, creditNo: string, legalPerson: string ): Promise<CompanyThreeFactorResult> { const res = await fetch( `${import.meta.env.VITE_SUPABASE_URL}/functions/v1/company-three-factor-auth`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ companyName, creditNo, legalPerson }), } ); if (res.status === 429) { const err = await res.json(); throw new Error(`配额已用尽:${err.message ?? res.statusText}`); } if (res.status === 402) { const err = await res.json(); throw new Error(`余额不足:${err.message ?? res.statusText}`); } if (!res.ok) throw new Error(`请求失败:${res.status}`); const json = await res.json(); if (!json.success || json.code !== 200) { throw new Error(`API 错误 ${json.code}:${json.msg}`); } return json.data; } ``` --- ## 注意事项 - **密钥安全**:`INTEGRATIONS_API_KEY` 仅可在 Edge Function 服务端读取,严禁暴露到前端。 - **错误处理**:务必处理 429(配额超限)和 402(余额不足)两种错误状态码。 - **计费**:每次调用按次计费,折扣价 ¥3.75 / 次(原价 ¥4.50 / 次),避免不必要的重复调用。 - **结果判断**:`data.result === 0` 表示三要素完全一致;其他值表示具体哪项不一致,详见 result 对照表。 - **必填参数**:`companyName`、`creditNo`、`legalPerson` 三个参数均为必填,任一缺失将返回 400 入参错误。 - **Plugin ID**: `a7c30985-2084-4205-9dbd-9d84238e0b3f` - **API ID**: `api-Aa2PZnjE80BL` - **third_part_domain**: `app-bo4w33bsdqm9-api-Aa2PZnjE80BL-gateway.appmiaoda.com`
View on GitHub