The national vehicle violation data interface that aggregates data currently supports violation inquiries in about 300 cities and has been connected to tens of thousands of APPs. It is convenient for car owners to know whether they have traffic violations at any time and avoid unnecessary losses caused by forgetting or overdue traffic violation tickets.
Introduction
The national vehicle violation data interface that aggregates data currently supports violation inquiries in about 300 cities and has been connected to tens of thousands of APPs. It is convenient for car owners to know whether they have traffic violations at any time and avoid unnecessary losses caused by forgetting or overdue traffic violation tickets.
API reference document: https://www.juhe.cn/docs/api/id/36
National Vehicle Violation Inquiry API Calling Code Example Based on PHP
This code example is a call to the National Vehicle Violation Inquiry API based on aggregated data. Before using it, you need to:
Apply for an appkey for violation query through http://www.juhe.cn/docs/api/id/36
1. Introduce the encapsulated request class class.juhe.wz.phpheader('Content-type:text/html;charset=utf-8'); <br>
include 'class.juhe.wz.php'; //Introduction file
2. Configuration parameters //Interface basic information configuration <br>
$appkey = '**********'; //The violation query key you applied for <br>
$wz = new wz($appkey);
3. Query the list of supported cities for violations
Since the supported cities will be updated from time to time, but not too frequently, you can cache this data, for example, update it every 3 hours, without requesting the interface every time. $wzcitys = $wz->getCitys(); //Query all supported cities <br>
$wzcitys = $wz->getCitys('GD'); //Query the cities in the specified province
The returned data format is as follows: (very important, it involves some conditions required for querying violations in the next step, and the specific field meanings You can refer to the official interface document, where register and registerno can be ignored and are only needed for older versions){ <br>
"resultcode": "200", <br>
"reason": "Successful return", <br>
"result": [ <br>
“province”: “Beijing”, <br>
"province_code": "BJ", <br>
"cities": [ <br>
"city_name": "Beijing", <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>
"error_code": 0 <br>
} <br>4. Query vehicle violation information<br>Basically, cities only support small car queries, so hpzl can be omitted. <code class="prettyprint linenums lang-php">//Query the vehicle’s violation information according to the required query conditions <br>
$city = 'GD_DG'; //City code, must be passed <br>
$carno = 'Guangdong S*****'; //License plate number, must be passed <br>
$engineno = '****'; //Engine number, the required city must be passed <br>
$classno = '*****'; //Vehicle number, the required city must be passed <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>
//The following is modified according to actual business needs <br>
echo $w['area']." ".$w['date']." ".$w['act']." ".$w['fen']." ".$w['money ']."<br>"; <br>
} <br>
}else{ <br>
echo "This car has no violation record"; <br>
} <br>
}else{ <br>
//Query unsuccessful <br>
echo $wzResult['error_code'].":".$wzResult['reason']; <br>
}
5. Complete code of class.juhe.wz.php <!--?php <br />
// +-------------------------------------------------- ----------------------- <br />
// | JuhePHP [ NO ZUO NO DIE ] <br />
// +-------------------------------------------------- ----------------------- <br />
// | Copyright (c) 2010-2015 http://juhe.cn All rights reserved. <br />
// +-------------------------------------------------- ----------------------- <br />
// | Author: Juhedata <info@juhe.cn--> <br>
// +-------------------------------------------------- ----------------------- <br>
<br>
//---------------------------------- <br>
//Aggregation data national violation interface calling class <br>
//---------------------------------- <br>
class wz{ <br>
Private $appkey = false; //Applied national violation query APPKEY <br>
<br>
private $cityUrl = 'http://v.juhe.cn/wz/citys'; <br>
<br>
Private $ wzurl = 'http://v.juhe.cn/wz/query';
<br>
Public function __construct($appkey){ <br>
$this->appkey = $appkey; <br>
} <br>
<br>
/**<br>
* Get the list of cities with violation support <br>
* * @return array <br>
*/ <br>
Public function getCitys($province=false){ <br>
$params = 'key='.$this->appkey."&format=2"; <br>
$ Content = $ This- & gt; juhecurl ($ this-& gt; cityurl, $ params); <br>
return $this->_returnArray($content); <br>
} <br>
<br>
/** <br>
* Check vehicle violations <br>
* @param string $city [city code] <br>
* @param string $carno [License plate number] <br>
* @param string $engineno [engine number] <br> * @param string $classno [车架号] <br>
* @return array 返回违章信息 <br>
*/ <br>
public function query($city,$carno,$engineno='',$classno=''){ <br>
$params = array( <br>
'key' => $this->appkey, <br>
'city' => $city, <br>
'hphm' => $carno, <br>
'engineno'=> $engineno, <br>
'classno' => $classno <br>
); <br>
$content = $this->juhecurl($this->wzUrl,$params,1); <br>
return $this->_returnArray($content); <br>
} <br>
<br>
/**<br>
* Convert JSON content into data and return <br>
* @param string $content [content] <br>
* * @return array <br>
*/ <br>
public function _returnArray($content){ <br>
return json_decode($content,true); <br>
} <br>
<br>
/**<br>
* *Request interface return content <br>
* @param string $url [Requested URL address] <br>
* @param string $params [requested parameters] <br>
* @param int $ipost [Whether to use POST form] <br>
* * @return string <br>
*/ <br>
public function juhecurl($url,$params=false,$ispost=0){ <br>
$httpInfo = array(); <br>
$ch = curl_init(); <br>
<br>
curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); <br>
curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); <br>
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); <br>
curl_setopt( $ch, CURLOPT_TIMEOUT , 60); <br>
curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); <br>
if( $ispost ) <br>
{ <br>
curl_setopt( $ch , CURLOPT_POST , true ); <br>
curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); <br>
curl_setopt( $ch , CURLOPT_URL , $url ); <br>
} <br>
else <br>
{ <br>
if($params){ <br>
curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); <br> }else{ <br>
curl_setopt( $ch , CURLOPT_URL , $url); <br>
} <br>
} <br>
$response = curl_exec( $ch ); <br>
if ($response === FALSE) { <br>
//echo "cURL Error: " . curl_error($ch); <br>
return false; <br>
} <br>
$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); <br>
$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); <br>
curl_close( $ch ); <br>
return $response; <br>
} <br>
}