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 相关文章推荐
图书管理程序(三)
Oct 09 PHP
php xml实例 留言本
Mar 20 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
PHP单例模式详细介绍
Jul 01 PHP
smarty学习笔记之常见代码段用法总结
Mar 19 PHP
一个实用的php验证码类
Jul 06 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 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
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
python爬取微信公众号文章
2018/08/31 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
如何对python的字典进行排序
2020/06/19 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
机电工程学生自荐信范文
2013/12/07 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
校园活动策划书范文
2014/01/10 职场文书
班组建设经验交流材料
2014/05/12 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
机关作风建设整改方案
2014/10/27 职场文书
golang特有程序结构入门教程
2021/06/02 Python
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python