PHP全国車両違反照会API呼び出しコード例に基づく

6409 ワード

このコードの例は、集約データに基づいて全国の車両違反照会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']."
"; } }else{ echo " "; } }else{ // echo $wzResult['error_code'].":".$wzResult['reason']; }

五、class.juhe.wz.phpフルコード


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

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

//              

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

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
;

    
}

}