데이터를 집계하는 국가 차량 위반 데이터 인터페이스는 현재 약 300개 도시의 위반 조회를 지원하고 수만 개의 APP와 연결되어 있다. 자동차 소유자는 자신의 교통위반 여부를 언제든지 알 수 있어 교통위반 딱지를 잊어버리거나 연체하여 발생하는 불필요한 손실을 방지할 수 있어 편리합니다.
소개
데이터를 집계하는 국가 차량 위반 데이터 인터페이스는 현재 약 300개 도시의 위반 조회를 지원하고 수만 개의 APP와 연결되어 있다. 자동차 소유자는 자신의 교통위반 여부를 언제든지 알 수 있어 교통위반 딱지를 잊어버리거나 연체하여 발생하는 불필요한 손실을 방지할 수 있어 편리합니다.
API 참조 문서: https://www.juhe.cn/docs/api/id/36
PHP 기반의 전국 차량 위반 조회 API 호출 코드 예시
이 코드 예시는 집계된 데이터를 기반으로 한 전국 차량 위반 조회 API 호출을 기반으로 합니다.
http://www.juhe.cn/docs/api/id/36
에서 위반 쿼리에 대한 앱키를 신청하세요.
1. 캡슐화된 요청 클래스 class.juhe.wz.phpheader('Content-type:text/html;charset=utf-8') <code class="prettyprint linenums lang-php">header('Content-type:text/html;charset=utf-8'); <br>
include 'class.juhe.wz.php'; //引入文件
을 소개합니다.
include 'class.juhe.wz.php'; //소개파일 2. 설정 파라미터 //인터페이스 기본정보 설정 <code class="prettyprint linenums lang-php">//接口基本信息配置 <br>
$appkey = '**********'; //您申请的违章查询key <br>
$wz = new wz($appkey);
$appkey = '**********'; //신청하신 위반 쿼리 키
$wz = new wz($appkey) 3. 위반이 지원되는 도시 목록을 쿼리합니다$wzcitys = $wz->getCitys(); //查询所有的支持城市 <br>
$wzcitys = $wz->getCitys('GD'); //查询指定省份下的城市
지원되는 도시는 수시로 업데이트되지만 너무 자주 업데이트되지는 않으므로 매번 인터페이스를 요청하지 않고도 이 데이터를 캐시할 수 있습니다. 예를 들어 3시간마다 업데이트할 수 있습니다. $wzcitys = $wz->getCitys() //지원되는 모든 도시 쿼리 <code class="prettyprint linenums lang-php">{ <br>
"resultcode": "200", <br>
"reason": "成功的返回", <br>
"result": [ <br>
{ <br>
"province": "北京", <br>
"province_code": "BJ", <br>
"citys": [ <br>
{ <br>
"city_name": "北京", <br>
"city_code": "BJ", <br>
"abbr": "京", <br>
"engine": "1", <br>
"engineno": "0", <br>
"classa": "0", <br>
"class": "0", <br>
"classno": "0", <br>
"regist": "0", <br>
"registno": "0" <br>
} <br>
] <br>
} <br>
], <br>
"error_code": 0 <br>
}
$wzcitys = $wz->getCitys('GD'); //지정된 지방의 도시를 쿼리합니다. 반환되는 데이터 형식은 다음과 같습니다. (매우 중요하며 위반 사항을 쿼리하는 데 필요한 몇 가지 조건이 포함됩니다. 다음 단계는 구체적으로 필드의 의미에 대해 공식 인터페이스 문서를 참조할 수 있습니다. 여기서 regist 및 registno는 무시할 수 있으며 이전 버전에서만 필요합니다.) { <br>
"결과코드": "200",
"reason": "성공적인 복귀",
"결과": [
"지방": "베이징",
"province_code": "BJ",
"도시": [
~
"city_name": "베이징",
"city_code": "BJ",
"abbr": "쿄",
"엔진": "1",
"engineno": "0",
"classa": "0",
"클래스": "0",
"classno": "0",
"등록": "0",
"registno": "0"
~
~
~
],
"오류 코드": 0
}
4. 차량 위반 정보 조회기본적으로 도시에서는 소형차 쿼리만 지원하므로 hpzl을 생략할 수 있습니다. //根据需要的查询条件,查询车辆的违章信息 <br>
$city = 'GD_DG'; //城市代码,必传 <br>
$carno = '粤S*****'; //车牌号,必传 <br>
$engineno = '****'; //发动机号,需要的城市必传 <br>
$classno = '*****'; //车架号,需要的城市必传 <br>
$wzResult = $wz->query($city,$carno,$engineno,$classno); <br>
if($wzResult['error_code'] ==0){ <br>
if($wzResult['result']['lists']){ <br>
foreach($wzResult['result']['lists'] as $key =>$w){ <br>
//以下就是根据实际业务需求修改了 <br>
echo $w['area']." ".$w['date']." ".$w['act']." ".$w['fen']." ".$w['money']."<br>"; <br>
} <br>
}else{ <br>
echo "该车无违章记录"; <br>
} <br>
}else{ <br>
//查询不成功 <br>
echo $wzResult['error_code'].":".$wzResult['reason']; <br>
}
5. class.juhe.wz.php 완성코드 <!--?php <br />
// +---------------------------------- --- ---------- <br />
// | JuhePHP [ NO ZUO NO DIE ] <br />
// +---------------------------------- --- ---------- <br />
// | Copyright (c) 2010-2015 http://juhe.cn <br />
// +---------------------------------- --- ---------- <br />
// | 작성자: Juhedata <info@juhe.cn-->
// +---------------------------------- --- ---------- <br>
<br>
//----------------------------------- <br>
//집계 데이터 국가 위반 인터페이스 호출 클래스 <br>
//----------------------------------- <br>
클래스 wz{ <br>
Private $appkey = false; //국가교통위반 조회 APPKEY 신청 <br>
<br>
비공개 $cityUrl = 'http://v.juhe.cn/wz/citys' <br>
<br>
비공개 $wzUrl = 'http://v.juhe.cn/wz/query' <br>
<br>
공개 함수 __construct($appkey){ <br>
$this->appkey = $appkey;
} <br>
<br>
/**<br>
* 위반 지원 도시 목록 받기<br>
* @return 배열 <br>
*/ <br>
공개 함수 getCitys($province=false){ <br>
$params = 'key='.$this->appkey."&format=2" <br>
$content = $this->juhecurl($this->cityUrl,$params) <br>
return $this->_returnArray($content); <br>
} <br>
<br>
/** <br>
* 차량 위반 조회 <br>
* @param string $city [도시 코드] <br>
* @param string $carno [번호판번호] <br>
* @param string $engineno [엔진 번호] <br> * @param 문자열 $classno [车架号] <br>
* @return 배열 返回违章信息<br>
*/ <br>
공개 함수 쿼리($city,$carno,$engineno='',$classno=''){ <br>
$params = 배열( <br>
'키' => $this->appkey, <br>
'도시' => $도시, <br>
'hphm' => $carno, <br>
'엔진번호'=> $engineno, <br>
'클래스번호' => $classno <br>
); <br>
$content = $this->juhecurl($this->wzUrl,$params,1); <br>
return $this->_returnArray($content); <br>
} <br>
<br>
/**<br>
* JSON 내용을 데이터로 변환하여 반환 <br>
* @param string $content [내용] <br>
* @return 배열 <br>
*/ <br>
공개 함수 _returnArray($content){ <br>
json_decode($content,true)를 반환합니다. <br>
} <br>
<br>
/**<br>
* 인터페이스 반환 콘텐츠 요청 <br>
* @param string $url [요청한 URL 주소] <br>
* @param string $params [요청된 매개변수] <br>
* @param int $ipost [POST 형식 사용 여부] <br>
* @return 문자열 <br>
*/ <br>
공개 함수 juhecurl($url,$params=false,$ispost=0){ <br>
$httpInfo = 배열(); <br>
$ch = curl_init(); <br>
<br>
컬_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); <br>
cur_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); <br>
컬_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); <br>
컬_setopt( $ch, CURLOPT_TIMEOUT , 60); <br>
cur_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); <br>
if( $ispost ) <br>
{ <br>
cur_setopt( $ch , CURLOPT_POST , true ); <br>
컬_setopt( $ch , CURLOPT_POSTFIELDS , $params ); <br>
컬_setopt( $ch , CURLOPT_URL , $url ); <br>
} <br>
그렇지 않으면 <br>
{ <br>
if($params){ <br>
컬_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); <br> }else{ <br>
컬_setopt( $ch , CURLOPT_URL , $url); <br>
} <br>
} <br>
$응답 = curl_exec( $ch ); <br>
if ($response === FALSE) { <br>
//에코 "cURL 오류: " . 컬_오류($ch); <br>
false를 반환합니다. <br>
} <br>
$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); <br>
$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); <br>
컬_닫기( $ch ); <br>
$응답을 반환합니다. <br>
} <br>
}