chapeupreto / sinesp
此包已废弃,不再维护。未建议替代包。
SINESP Cidadao API客户端
v1.7.0
2019-01-12 18:27 UTC
Requires
- php: >=5.4.0
- ext-curl: *
- ext-libxml: *
- ext-xml: *
README
SINESP Cidadão是一个非常有用的巴西车辆公共数据库,可以用来识别被盗或可疑的车辆或摩托车。
Sinesp PHP API客户端
遗憾的是,政府没有维护一个公开API来执行此类查询。到目前为止,查看特定车辆的唯一方法是通过Sinesp网站进行验证,并对每个请求进行验证(captcha
)。因此,有必要开发一个API,以便方便地访问这些信息。
可用信息
如果找到指定牌照的车辆,服务器将返回以下信息
- codigoRetorno:查询返回代码
- mensagemRetorno:查询返回消息
- codigoSituacao:车辆状态代码
- situacao:车辆状态消息
- modelo:车辆型号
- marca:车辆品牌
- cor:车辆颜色
- ano:车辆制造年份
- anoModelo:车辆型号年份
- placa:查询的牌照
- data:查询日期和时间
- uf:车辆所属州或联邦单位
- municipio:车辆所属市或镇
- chassi:车辆底盘号
- dataAtualizacaoCaracteristicasVeiculo:车辆特征更新日期
- dataAtualizacaoRouboFurto:关于盗窃或抢劫的更新信息日期
- dataAtualizacaoAlarme:
这些信息将通过一个关联数组
或作为对象的属性
提供。
要求
- PHP 5.4+
- cURL
- libxml / XML
安装
使用以下命令安装最新版本
composer require chapeupreto/sinesp
使用
以下是使用此库的一个简单示例
<?php require 'vendor/autoload.php'; use Sinesp\Sinesp; $veiculo = new Sinesp; try { $veiculo->buscar('GWW-6471'); if ($veiculo->existe()) { print_r($veiculo->dados()); } } catch (\Exception $e) { echo $e->getMessage(); }
buscar()
方法必须首先调用。此方法用于定位具有指定牌照的车辆信息。
调用buscar()
方法后,dados()
方法将返回一个包含所有车辆信息的关联数组。
此外,您还可以通过将信息作为对象的属性访问来恢复信息,而不是使用dados()
方法返回的整个数组
echo 'O municipio do veiculo é ', $veiculo->municipio;
代理
SINESP可能会阻止来自国外的连接。如果查询由于连接错误(例如,timeout
错误)而没有返回结果,则可以使用代理进行查询。
在互联网上可以轻松找到许多免费代理(例如,http://proxylist.hidemyass.com/
)。以下是一个使用代理的示例
$veiculo = new Sinesp; $veiculo->proxy('177.54.144.208', '80'); // Com proxy, esse metodo deve ser chamado antes do metodo buscar() $veiculo->buscar('GWW-6471'); print_r($veiculo->dados());
可选地,您可以使用一个关联数组,包含键 ip
和 porta
,作为 buscar()
方法的第二个参数,而不是使用 proxy($ip, $porta)
方法。
$veiculo = new Sinesp; $veiculo->buscar('GWW-6471', ['ip' => '177.54.144.208', 'porta' => '80']); // a consulta usara o proxy especificado print_r($veiculo->dados());
超时
由于 SINESP 在阻塞请求后不会终止请求,您可能会遇到错误 504。为了避免这种情况带来的麻烦,已提供 timeout
方法来设置最大响应时间。
$veiculo->timeout(5); // tempo em segundos
提示:结合使用 proxy(使用不同的代理进行多次尝试),这可以显著提高多个请求的成功率。