方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失。本代码示例是基于聚合数据全国车辆违章查询API的调用,有需要的可以往下看。
使用前你需要:
通过:https://www.juhe.cn/docs/api/id/36申请一个违章查询的appkey
一、引入封装好的请求类class.juhe.wz.php
1
2
|
header( 'Content-type:text/html;charset=utf-8' );
include 'class.juhe.wz.php' ; //引入文件
|
二、配置参数
1
2
3
|
//接口基本信息配置
$appkey = '**********' ; //您申请的违章查询key
$wz = new wz( $appkey );
|
三 、查询违章支持的城市列表由于支持的城市会不定期更新,但不会太频繁,大家可以将这些数据缓存,比如每3小时来更新一次,不用每次都请求接口。
1
2
|
$wzcitys = $wz ->getCitys(); //查询所有的支持城市
$wzcitys = $wz ->getCitys( 'GD' ); //查询指定省份下的城市
|
返回的数据格式如下:(很重要,涉及到下一步查询违章所需的一些条件,具体的字段意思可以参考官方的接口文档,其中regist和registno 可以忽略,是旧版本才需要的)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
{
"resultcode" : "200" ,
"reason" : "成功的返回" ,
"result" : [
{
"province" : "北京" ,
"province_code" : "BJ" ,
"citys" : [
{
"city_name" : "北京" ,
"city_code" : "BJ" ,
"abbr" : "京" ,
"engine" : "1" ,
"engineno" : "0" ,
"classa" : "0" ,
"class" : "0" ,
"classno" : "0" ,
"regist" : "0" ,
"registno" : "0"
}
]
}
],
"error_code" : 0
}
|
四、查询车辆的违章信息基本上城市只支持小型车查询,所以hpzl可以省去。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//根据需要的查询条件,查询车辆的违章信息
$city = 'GD_DG' ; //城市代码,必传
$carno = '粤S*****' ; //车牌号,必传
$engineno = '****' ; //发动机号,需要的城市必传
$classno = '*****' ; //车架号,需要的城市必传
$wzResult = $wz ->query( $city , $carno , $engineno , $classno );
if ( $wzResult [ 'error_code' ] ==0){
if ( $wzResult [ 'result' ][ 'lists' ]){
foreach ( $wzResult [ 'result' ][ 'lists' ] as $key => $w ){
//以下就是根据实际业务需求修改了
echo $w [ 'area' ]. " " . $w [ 'date' ]. " " . $w [ 'act' ]. " " . $w [ 'fen' ]. " " . $w [ 'money' ]. "<br>" ;
}
} else {
echo "该车无违章记录" ;
}
} else {
//查询不成功
echo $wzResult [ 'error_code' ]. ":" . $wzResult [ 'reason' ];
}
|
五、class.juhe.wz.php完整代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
<!--?php
// +----------------------------------------------------------------------
// | JuhePHP [ NO ZUO NO DIE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2010-2015 http://juhe.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: Juhedata <info@juhe.cn-->
// +----------------------------------------------------------------------
//----------------------------------
// 聚合数据全国违章接口调用类
//----------------------------------
class wz{
private $appkey = false; //申请的全国违章查询APPKEY
private $cityUrl = 'http://v.juhe.cn/wz/citys' ;
private $wzUrl = 'http://v.juhe.cn/wz/query' ;
public function __construct( $appkey ){
$this ->appkey = $appkey ;
}
/**
* 获取违章支持的城市列表
* @return array
*/
public function getCitys( $province =false){
$params = 'key=' . $this ->appkey. "&format=2" ;
$content = $this ->juhecurl( $this ->cityUrl, $params );
return $this ->_returnArray( $content );
}
/**
* 查询车辆违章
* @param string $city [城市代码]
* @param string $carno [车牌号]
* @param string $engineno [发动机号]
* @param string $classno [车架号]
* @return array 返回违章信息
*/
public function query( $city , $carno , $engineno = '' , $classno = '' ){
$params = array (
'key' => $this ->appkey,
'city' => $city ,
'hphm' => $carno ,
'engineno' => $engineno ,
'classno' => $classno
);
$content = $this ->juhecurl( $this ->wzUrl, $params ,1);
return $this ->_returnArray( $content );
}
/**
* 将JSON内容转为数据,并返回
* @param string $content [内容]
* @return array
*/
public function _returnArray( $content ){
return json_decode( $content ,true);
}
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @return string
*/
public function juhecurl( $url , $params =false, $ispost =0){
$httpInfo = array ();
$ch = curl_init();
curl_setopt( $ch , CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
curl_setopt( $ch , CURLOPT_USERAGENT , 'JuheData' );
curl_setopt( $ch , CURLOPT_CONNECTTIMEOUT , 60 );
curl_setopt( $ch , CURLOPT_TIMEOUT , 60);
curl_setopt( $ch , CURLOPT_RETURNTRANSFER , true );
if ( $ispost )
{
curl_setopt( $ch , CURLOPT_POST , true );
curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
curl_setopt( $ch , CURLOPT_URL , $url );
}
else
{
if ( $params ){
curl_setopt( $ch , CURLOPT_URL , $url . '?' . $params );
} else {
curl_setopt( $ch , CURLOPT_URL , $url );
}
}
$response = curl_exec( $ch );
if ( $response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
$httpInfo = array_merge ( $httpInfo , curl_getinfo( $ch ) );
curl_close( $ch );
return $response ;
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。