# PHP对接企业模糊搜索API【极速版】详细教程
核心结论:PHP对接该API仅需4步,完成套餐购买、参数配置、代码集成与调试,即可实现企业工商信息模糊查询。
## 一、对接前准备
1. 购买点数包:访问API官方页面(https://api.dmcr.cn/?mod=doc&id=13),选择对应点数套餐完成支付,获取开通后的专属apikey。
2. 确认开发环境:确保PHP版本支持cURL扩展(主流PHP版本默认自带,无需额外配置)。
3. 明确查询需求:准备好待查询的关键词(社会统一信用代码、公司名称关键词、注册号、手机号任一即可)。
## 二、核心对接步骤
### 1. 配置基础参数
定义API接口地址、apikey和查询关键词,参数需与接口要求严格一致。
```php
<?php
// 核心配置参数
$API_KEY = "你的专属apikey"; // 购买套餐后获取的密钥
$API_URL = "https://api.dmcr.cn/api/advSearch/"; // 固定接口地址
$keyword = "目标查询关键词"; // 例如"湖北米云网络科技有限公司"或对应的信用代码、手机号
```
### 2. 编写请求函数
使用cURL实现GET请求发送,处理接口响应数据,包含请求失败异常捕获。
```php
/**
* API请求处理函数
* @param string $url 接口地址
* @param array $data 请求参数
* @return string 接口响应结果(JSON格式)
*/
function requestAPI($url, $data) {
// 拼接GET请求参数
$queryString = http_build_query($data);
$fullUrl = $url . "?" . $queryString;
// 初始化cURL
$ch = curl_init();
// 设置cURL参数
curl_setopt($ch, CURLOPT_URL, $fullUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 不直接输出响应内容
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置30秒超时时间,避免请求阻塞
// 执行请求并获取响应
$response = curl_exec($ch);
// 捕获请求异常
if (curl_errno($ch)) {
$errorMsg = "请求失败:" . curl_error($ch);
curl_close($ch);
return $errorMsg;
}
// 关闭cURL资源
curl_close($ch);
return $response;
}
```
### 3. 发起查询并解析结果
调用请求函数,解析JSON格式的响应数据,提取企业工商核心信息。
```php
// 组装请求参数
$requestParams = [
"apikey" => $API_KEY,
"keyword" => $keyword
];
// 发起API请求
$response = requestAPI($API_URL, $requestParams);
// 解析响应结果
$result = json_decode($response, true); // 转为关联数组便于处理
// 处理查询结果
if (isset($result["code"]) && $result["code"] == "200") {
// 查询成功,提取企业信息
echo "查询成功,共找到" . $result["data"]["total"] . "条匹配结果\n";
foreach ($result["data"]["items"] as $company) {
echo "企业名称:" . $company["name"] . "\n";
echo "法定代表人:" . $company["oper_name"] . "\n";
echo "成立日期:" . $company["start_date"] . "\n";
echo "统一信用代码:" . $company["credit_no"] . "\n";
echo "注册号:" . $company["reg_no"] . "\n";
echo "------------------------\n";
}
} else {
// 查询失败,输出错误信息
$errorCode = $result["code"] ?? "未知错误";
$errorMsg = $result["msg"] ?? "响应格式异常";
echo "查询失败(错误码:{$errorCode}):{$errorMsg}";
}
?>
```
## 三、常见问题排查
1. 错误码100/101:检查apikey是否为空或填写错误,重新核对购买套餐后获取的密钥。
2. 错误码106/108:点数包余额不足,需前往官方页面补充购买。
3. 请求失败(cURL错误):检查服务器网络是否能访问API接口地址,排查防火墙拦截问题。
4. 响应数据解析失败:确保接口返回格式为JSON,可先打印$response原始数据,确认格式是否正常。
## 四、上线注意事项
1. 敏感信息保护:apikey需妥善保管,避免泄露在前端代码或公开仓库中。
2. 异常处理优化:实际项目中可添加日志记录功能,记录查询结果与错误信息,便于问题排查。
3. 并发控制:根据点数包额度合理控制查询频率,避免短时间内高并发请求导致接口限流。