美文网首页Android知识Android开发Android技术知识
基于PHP全国车辆违章查询API调用代码示例

基于PHP全国车辆违章查询API调用代码示例

作者: yaojq | 来源:发表于2016-12-28 16:03 被阅读216次

本代码示例是基于聚合数据全国车辆违章查询API的调用,使用前你需要:
①:通过 https://www.juhe.cn/docs/api/id/36 申请一个违章查询的appkey

一、引入封装好的请求类class.juhe.wz.php

header('Content-type:text/html;charset=utf-8');
include 'class.juhe.wz.php'; //引入文件

二、配置参数

//接口基本信息配置
$appkey = '**********'; //您申请的违章查询key
$wz = new wz($appkey);

三 、查询违章支持的城市列表
由于支持的城市会不定期更新,但不会太频繁,大家可以将这些数据缓存,比如每3小时来更新一次,不用每次都请求接口。

$wzcitys = $wz->getCitys(); //查询所有的支持城市
$wzcitys = $wz->getCitys('GD'); //查询指定省份下的城市

返回的数据格式如下:(很重要,涉及到下一步查询违章所需的一些条件,具体的字段意思可以参考官方的接口文档,其中regist和registno 可以忽略,是旧版本才需要的)

{
    "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可以省去。

//根据需要的查询条件,查询车辆的违章信息
$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完整代码

<!--?php

// +----------------------------------------------------------------------

// | JuhePHP [ NO ZUO NO DIE ]

// +----------------------------------------------------------------------

// | Copyright (c) 2010-2015 [http://juhe.cn All rights reserved.](http://juhe.cn%20all%20rights%20reserved./)

// +----------------------------------------------------------------------

// | Author: Juhedata <info@juhe.cn-->

// +----------------------------------------------------------------------

 
//----------------------------------

// 聚合数据全国违章接口调用类

//----------------------------------

class
 wz{

    
private
 $appkey
 = false; 
//申请的全国违章查询APPKEY

 
    
private
 $cityUrl
 = 
'[http://v.juhe.cn/wz/citys](http://v.juhe.cn/wz/citys)'
;

 
    
private
 $wzUrl
 = 
'[http://v.juhe.cn/wz/query](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
;

    
}

}

相关文章

网友评论

    本文标题:基于PHP全国车辆违章查询API调用代码示例

    本文链接:https://www.haomeiwen.com/subject/nebyvttx.html