php车辆违章查询数据示例


Posted in PHP onOctober 14, 2016

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php垃圾代码优化操作代码
Aug 05 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
深入PHP autoload机制的详解
Jun 09 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
PHP验证信用卡卡号是否正确函数
May 27 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 #PHP
php+jQuery递归调用POST循环请求示例
Oct 14 #PHP
php实现将HTML页面转换成word并且保存的方法
Oct 14 #PHP
PHP中多线程的两个实现方法
Oct 14 #PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 #PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 #PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 #PHP
You might like
php中防止伪造跨站请求的小招式
2011/09/02 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
任意位置显示html菜单
2007/02/01 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
Django权限机制实现代码详解
2018/02/05 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
flask-restful使用总结
2018/12/04 Python
带你认识Django
2019/01/15 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
sort命令的作用和用法
2012/11/04 面试题
销售顾问岗位职责
2014/02/25 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
村长贪污检举信
2014/04/04 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
病媒生物防治方案
2014/05/13 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
服务员岗位职责
2015/02/03 职场文书
学雷锋感言
2015/08/03 职场文书
谢师宴家长答谢词
2015/09/30 职场文书