您有支付表单需要发货,并且需要快速验证卡片。在本指南结束时,您将从 PHP 调用信用卡验证器 - BIN 检查 API 来验证前 6 位数字(BIN/IIN),读取发行者和品牌数据,并在不构建和维护自己的 BIN 表的情况下加强您的结账或风险管道。
为什么 BIN 验证很重要以及您将构建什么
BIN(银行识别号码)——卡片的前 6 位数字——告诉您发行者、品牌、类型,以及通常的国家。您将连接一个轻量级的预授权步骤:
- 接受客户的前 6 位数字(绝不接受完整的 PAN),
- 调用单个端点来验证 BIN,
- 读取卡片品牌(例如,AMERICAN EXPRESS)、类型(CREDIT)和发行者提示,
- 分支您的流程(例如,3DS 或 SCA 提示、允许的品牌或额外的 KYC 触发器)。
以下内容基于 信用卡验证器 - BIN 检查 API 在 Zyla API Hub 的金融与支付类别中构建。
关于信用卡验证器 - BIN 检查 API
此 API 验证任何信用卡的 BIN(前 6 位数字)并返回:
- 卡片品牌和类型,
- 卡片级别(可用时),
- 发行者信息(可通过 API 获取时),
- 国家信息(可用时)。
它公开一个 HTTP GET 端点,接受一个必需的查询参数 bin,并返回一个简洁的 JSON 有效负载,确认有效性以及卡片元数据。
在 Zyla 的计费是订阅 + 配额(而不是按调用计费)。对于此 API,您通常会找到一个首个 API 选项,例如 7 天试用或 50 次请求。没有免费计划;请查看 API 页面以获取当前访问选项和定价。
在 Zyla API Hub 上开始
要获取 API 密钥并开始调用端点:
- 打开 API 页面: 信用卡验证器 - BIN 检查 API。
- 点击订阅(或如果可用则开始免费试用)并完成结账。请记住:订阅 + 配额模型;不按调用计费。
- 从仪表板复制您的 API 密钥。
- 使用以下头部对每个请求进行身份验证:
Authorization: Bearer YOUR_API_KEY。
如果您还没有帐户,您可以快速 注册 以获取 API 密钥并从您的环境中尝试。
端点参考和实现(包括 cURL)
有一个用于 BIN 验证的端点:
- 方法:GET
- URL:
https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker - 必需的查询参数:
bin(字符串):前 6 位数字,例如346350
- 身份验证:
Authorization: Bearer YOUR_API_KEY
cURL
curl -s -X GET "https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=346350" \
-H "Authorization: Bearer YOUR_API_KEY"
这将返回一个 JSON 主体,指示 BIN 是否有效,并在可用时返回品牌和发行者元数据。
PHP 集成指南
下面的代码片段使用 curl_init 从 PHP 调用相同的端点。它演示了请求构造、身份验证和基本 JSON 解码以供下游逻辑使用。
PHP(cURL)
<?php
$apiKey = 'YOUR_API_KEY';
$bin = '346350';
$url = 'https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=' . urlencode($bin);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Accept: application/json',
],
CURLOPT_TIMEOUT => 10,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err = curl_error($ch);
curl_close($ch);
if ($err) {
// 传输级错误(DNS、TLS、超时)
error_log('cURL error: ' . $err);
http_response_code(502);
exit('上游错误,请重试');
}
if ($httpCode < 200 || $httpCode >= 300) {
// Hub 的非 2xx 状态
http_response_code(502);
exit('BIN 检查不可用');
}
data = json_decode($response, true);
// 在读取字段之前进行防御性检查
if (!is_array($data) || !isset($data['success'])) {
http_response_code(502);
exit('响应格式错误');
}
// 示例分支逻辑
if (!empty($data['isValid'])) {
$brand = $data['data']['card_brand'] ?? 'UNKNOWN';
$type = $data['data']['card_type'] ?? 'UNKNOWN';
// 在边缘强制允许的品牌/类型(示例)
$allowedBrands = ['AMERICAN EXPRESS', 'VISA', 'MASTERCARD'];
if (!in_array($brand, $allowedBrands, true)) {
http_response_code(400);
exit('不支持的卡片品牌');
}
// 继续结账或预授权流程
echo 'BIN 有效。品牌:' . $brand . ' | 类型:' . $type . PHP_EOL;
} else {
http_response_code(400);
exit('无效的 BIN');
}
JavaScript(fetch)
const apiKey = 'YOUR_API_KEY';
const bin = '346350';
const url = `https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=${encodeURIComponent(bin)}`;
fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Accept': 'application/json'
}
})
.then(async (res) => {
const text = await res.text();
if (!res.ok) {
throw new Error(`HTTP ${res.status}: ${text}`);
}
return JSON.parse(text);
})
.then((json) => {
if (json.isValid) {
const brand = json.data?.card_brand ?? 'UNKNOWN';
const type = json.data?.card_type ?? 'UNKNOWN';
console.log(`BIN 有效。品牌:${brand},类型:${type}`);
} else {
console.log('无效的 BIN');
}
})
.catch((err) => {
console.error('请求失败:', err);
});
响应结构和字段映射
响应包括一个顶级有效性标志和一个数据对象,其中包含多个卡片属性,您可以用于路由或合规检查。以下是您将从提供的请求中获得的官方示例响应。
JSON(官方示例)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
您实际使用的字段说明:
isValid:布尔值。您流程的决定性信号。如果为假,请提前拒绝。data.card_brand:例如,AMERICAN EXPRESS。驱动品牌级路由和接受政策。data.card_type:例如,CREDIT。如果您的收单设置不同,则有助于区分借记/信用处理。data.bin_iin:请求 BIN 的回声;适合日志记录和审计。data.issuer_* / iso_country_*:在可用时,用于风险控制和基于国家的规则。
以下是额外的完整 JSON 示例,重复相同的官方示例,以便您可以复制/粘贴到测试或固定装置中而无需修改。
JSON(固定装置 A)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
JSON(固定装置 B)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
JSON(固定装置 C)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
用例、MCP 集成和生产说明
现实世界的金融用例
- 结账预验证:在到达您的 PSP 之前拒绝明显错误的 BIN,节省网关费用和延迟。
- 品牌白名单:仅接受按国家或商户类别支持的品牌。
- SCA/3DS 触发器:根据品牌和类型应用自适应检查。
- 风险评分:将
isValid、card_brand和iso_country_code(在可用时)输入到您的风险模型中。 - 支持和报告:存储
bin_iin和card_brand以便于对账仪表板。
通过 MCP 从 AI 代理调用 API
每个 Zyla API 都可以通过模型上下文协议(MCP)网关调用。将任何兼容 MCP 的客户端(例如,Claude Code、Cursor、Windsurf)指向 MCP 端点并提供您的 API 密钥:
- MCP 网关:
https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY - 在此了解更多: MCP
在您的代理中,配置一个工具,该工具向 BIN 检查端点发出 GET 请求,带有 bin 查询和 Authorization: Bearer 头。然后,代理可以根据 isValid 分支并读取 data.card_brand 以进行下游步骤。
节省时间的生产说明
- 身份验证:始终发送
Authorization: Bearer YOUR_API_KEY。不要在查询字符串中传递密钥。 - 输入验证:确保
bin恰好是 6 个数字字符,然后再调用 API。 - 超时和重试:网络调用失败;设置客户端超时(例如,5–10 秒),并在瞬态 5xx/超时条件下重试。
- 缓存:BIN 数据相对稳定。按
bin缓存响应数小时或数天,以减少延迟和配额。 - 错误处理:检查 HTTP 状态并在读取嵌套字段之前验证 JSON 架构。如果字段为 null 或模糊(例如,“仅限 API”),则优雅地回退。
- 数据最小化:仅传输 BIN,绝不要将完整的卡片 PAN 或 CVV 传递给此端点。
- 可观察性:记录
bin、isValid、card_brand和 HTTP 状态以进行审计和调整(避免存储完整的 PAN)。 - 环境分离:每个环境使用不同的密钥;绝不要将密钥提交到代码中。
有关配额和当前访问选项,请查看 Zyla API Hub 上的 API 页面。计费是订阅 + 配额,而不是按调用计费;没有免费计划。首次 API 访问通常提供 7 天试用或 50 次请求——请在列表中验证。
常见问题
1) 我应该调用的确切端点和方法是什么?
使用 GET 访问: https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=346350(替换 bin 值)。包括头部 Authorization: Bearer YOUR_API_KEY。
2) 哪些参数是必需的?
只需要一个查询参数: bin(字符串),卡片的前六位数字。
3) 响应是什么样的?
主体包括 status、success、isValid、message 和一个包含 bin_iin、card_brand 和 card_type 等字段的 data 对象。请参见上面的 JSON 示例。
4) 计费是如何处理的?
Zyla 使用订阅 + 配额模型(不是按调用计费)。没有免费计划。对于此 API,首个 API 通常提供 7 天试用或 50 次请求。请查看 API 页面以获取当前详细信息。
5) 我可以从 AI 代理调用这个吗?
可以。使用 Zyla MCP 网关 https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY 并配置您的代理以向 BIN 检查端点发出 GET 请求,带有所需的授权头。
准备在您的 PHP 结账或风险服务中验证 BIN 吗?创建您的帐户,订阅 API,并获取您的密钥: 注册。您可以随时在 Zyla API Hub 上探索其他金融与支付 API,以及 信用卡验证器 - BIN 检查 API 的专用列表页面。