• 对接企业三要素验证
  • 税务登记号核验

对接企业三要素验证

接口地址: http://api.qichacha.com/ECIMatch/CompanyVerify

请求头:

java企查查数据抓取 企查查 接口_java企查查数据抓取

ps:这里的key和secretKey都是直接在你的企查查账户里面能看到的

参数:

java企查查数据抓取 企查查 接口_数组_02


废话不多说直接上代码

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": "查询的订单编号"