| 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 | 空对象 {} |
响应示例
{
"msg": "成功",
"success": true,
"code": 200,
"data": {
"order_no": "426621381069965596",
"result": 0,
"desc": "一致"
}
}
生成期用法(Agent 直接调用)
const apiKey = process.env["INTEGRATIONS_API_KEY"]!;
interface CompanyThreeFactorResult {
order_no: string;
result: number;
desc: string;
}
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}`);
生成后用法(应用内通过 Edge Function 调用)
Edge Function
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 可用时):
interface CompanyThreeFactorResult {
order_no: string;
result: number;
desc: string;
}
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 时):
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