方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失。本代码示例是基于聚合数据全国车辆违章查询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 ; } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。