- 对接企业三要素验证
- 税务登记号核验
对接企业三要素验证
接口地址: http://api.qichacha.com/ECIMatch/CompanyVerify
请求头:
ps:这里的key和secretKey都是直接在你的企查查账户里面能看到的
参数:
废话不多说直接上代码
public function companyVerify($regNo, $companyName, $frname)
{
$verifyReturn = [];
$url = 'http://api.qichacha.com/ECIMatch/CompanyVerify';
$apiKey = '你自己的key';
$SecretKey = '你自己的secretKey';
if (!($url && $apiKey && $SecretKey)) {
// 这里是如果没有配置的情况返回的假数据结果
}
$timeSpan = time();
// 加密
$token = strtoupper(md5($apiKey.$timeSpan.$SecretKey));
// 请求参数
$query = [
'key' => $apiKey,
'regNo' => $regNo,
'companyName' => $companyName,
'frName' => $frname
];
// 假返回结果
if (empty($regNo && $companyName && $frname)) {
// 统一社会信用代码/公司名称/法人三者不许都不为空,这里是为空返回的假结果
}
// 把参数数组拼接成get的参数
$get = http_build_query($query);
// Request-Header:这里是验证的,必须有,并且header的key和value之间是用英文冒号连接的
$headerList = [
'Token:'.$token,
'Timespan:'.$timeSpan,
];
// curl请求,不做特殊处理返回的是json,但是我这里自己json-decode了
$res = $this->curl_get_https($url.'?'.$get, $headerList);
// success-return
// status可以在企查查接口查询所有的代码意义,需要注意当代码不是200的时候是不算次数的,查询到的情况返回200,查询不匹配和匹配都是200只不过返回信息有区别
$returnStatus = array_get($res, 'Status', "");
$returnResult = array_get($res, 'Result', "");
$returnMessage = array_get($res, 'Message', "");
if ($returnStatus == '200' && $returnResult == '一致') {
// verify成功
// 自定义返回
} else {
// 失败的话message和result里面都可能是错误信息
}
}
常见status:
https://openapi.qcc.com/errorCode 常见问题:
https://openapi.qcc.com/FAQ
关于失败,光看status是没有办法判断三要素是否匹配的,如果说匹配Result返回的是汉字“一致”,不匹配的话返回的是具体的原因~
个人感觉这个设定挺不好的,把匹配失败和成功分开应该是更合适的
{
"Result": "法人不匹配",
"Status": "200",
"Message": "查询成功",
"OrderNumber": null
}
税务登记号核验
和企业三要素的请求是一致的,稍微有不同的是只需要拿公司名称或者统一社会信用代码去匹配,查询到的所有公司信息会以数组的形式返回在Result里面
由于没啥子差别, 这里只给一个成功的例子吧
// 成功的例子
"Result": {
"Name": "阿里巴巴(中国)网络技术有限公司",
"CreditCode": "91330100716105852F",
"EconKind": "有限责任公司(台港澳与境内合资)",
"Status": "存续",
"Address": "浙江省杭州市滨江区网商路699号",
"Tel": "0571-85022088",
"Bank": "中国工商银行股份有限公司杭州高新支行",
"BankAccount": "1202026219900061029"
},
"Status": "200",
"Message": "查询成功",
"OrderNumber": "查询的订单编号"
=========
// 失败的例子
"Result": null,
"Status": "201",
"Message": "查询失败",
"OrderNumber": "查询的订单编号"