首页 > 开发 > PHP > 正文

php车辆违章查询数据示例

2024-05-04 22:51:55
字体:
来源:转载
供稿:网友

方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失。本代码示例是基于聚合数据全国车辆违章查询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.// +----------------------------------------------------------------------// | 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;  }}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表