breskott/sinesp
Composer 安装命令:
composer require breskott/sinesp
包简介
SINESP Cidadao API client
README 文档
README
SINESP Cidadão é uma base de dados pública de veículos e cidadões brasileiros muito útil para identificar carros ou motos roubados ou suspeitos, e de cidadões que possuem mandado de prisão.
Sinesp PHP API Client
Infelizmente, o governo não mantém uma API pública para realizar esse tipo de consulta. Até então, a única maneira de visualizar as informações de um determinado veículo era através do site do Sinesp respondendo a perguntas de verificação (captchas) para cada uma das requisições. Assim, houve a necessidade de desenvolver uma API de modo a facilitar o acesso a essas informações.
Informações Disponíveis
Se um veículo com a placa especificada for encontrado, o servidor irá retornar com as seguintes informações:
- codigoRetorno: código de retorno da consulta
- mensagemRetorno: mensagem de retorno da consulta
- codigoSituacao: código da situação do veículo
- situacao: mensagem da situação do veículo
- modelo: modelo do veículo
- marca: marca do veículo
- cor: cor do veículo
- ano: ano de fabricação do veículo
- anoModelo: ano do modelo do veículo
- placa: placa consultada
- data: data e hora da consulta
- uf: estado ou unidade federativa do veículo
- municipio: município ou cidade do veículo
- chassi: chassi do veículo
- dataAtualizacaoCaracteristicasVeiculo: data atualização das características do veículo
- dataAtualizacaoRouboFurto: data atualização de informações sobre roubo ou furto
- dataAtualizacaoAlarme:
Se um mandado com nome da pessoa especificada for encontrado, o servidor irá retornar com as seguintes informações:
- codigoRetorno: código de retorno da consulta
- mensagemRetorno: mensagem de retorno da consulta
- idMandado: id do mandado
- numeroMandado: numero do mandado
- pessoa: nome da pessoa
- dataNascimento: data de nascimento da pessoa
- genitora: nome da mãe da pessoa
- RG: RG da pessoa
- CPF: CPF da pessoa
- tipoSituacaoMandado: situação do mandado
- tipoMandado: tipo de mandado
Essas informações estarão disponíveis por meio de um array associativo ou como atributo do objeto.
Requisitos
- PHP 5.4+
- cURL
- libxml / XML
Instalação
Instale a versão mais recente com:
composer require breskott/sinesp
Utilização
Abaixo um exemplo simples e geral de utilização da biblioteca:
<?php error_reporting(0); require 'vendor/autoload.php'; use Sinesp\Sinesp; use Sinesp\MandadoSinesp; $veiculo = new Sinesp; $mandado = new MandadoSinesp(); try { // Pega pelo Get $placa = $_GET['placa']; $nome = $_GET['nome']; if (!empty($placa)){ $veiculo->buscar($placa); if ($veiculo->existe()) { print_r($veiculo->dados()); } } if (!empty($nome)) { $mandado->buscar($nome); if ($mandado->existe()){ print_r($mandado->dados()); } } } catch (\Exception $e) { echo $e->getMessage(); }
O método buscar() deve ser o primeiro método a ser invocado. Esse método é empregado para localizar informações do veiculo com a placa informada.
Após a chamada ao método buscar(), o método dados() irá retornar um array associativo contendo todas as informações do veículo ou cidadão.
Proxy
O SINESP pode bloquear conexões vindas de fora do país.
Caso a consulta não retorne resultados por erro de conexão (por exemplo, erro de timeout), pode-se realizar uma consulta usando proxy.
Existem diversos proxy gratuitos (e.g., http://proxylist.hidemyass.com/) que podem ser encontrados facilmente na Internet. Um exemplo de utilização com proxy encontra-se abaixo:
$veiculo = new Sinesp; $mandado = new MandadoSinesp(); $veiculo->proxy('177.54.144.208', '80'); // Com proxy, esse metodo deve ser chamado antes do metodo buscar() $mandado->proxy('177.54.144.208', '80'); // Com proxy, esse metodo deve ser chamado antes do metodo buscar() $veiculo->buscar('GWW-6471'); $mandado->buscar('Nome da pessoa'); print_r($veiculo->dados()); print_r($mandado->dados());
Opcionalmente, ao invés de usar o metodo proxy($ip, $porta), pode-se utilizar um array associativo com as chaves ip e porta como segundo argumento do método buscar():
$veiculo = new Sinesp; $mandado = new MandadoSinesp(); $veiculo->buscar('GWW-6471', ['ip' => '177.54.144.208', 'porta' => '80']); // a consulta usara o proxy especificado $mandado->buscar('Nome da Pessoa', ['ip' => '177.54.144.208', 'porta' => '80']); // a consulta usara o proxy especificado print_r($veiculo->dados()); print_r($mandado->dados());
Timeout
Uma vez que o SINESP não mata sua requisição após bloqueio, é provável que você acabe se deparando com erro(s) 504. A fim de evitar transtorno, foi disponibilizado o método timeout para definir um tempo máximo de resposta:
$veiculo->timeout(5); // tempo em segundos $mandado->timeout(5); // tempo em segundos
Dica: Em combinação com o proxy (fazendo múltiplas tentativas com diferentes proxies), isso poderá aumentar consideravelmente suas chances de sucesso para múltiplas requisições
breskott/sinesp 适用场景与选型建议
breskott/sinesp 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 938 次下载、GitHub Stars 达 9, 最近一次更新时间为 2020 年 01 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「veiculos」 「seguranca」 「sinesp」 「sinesp-client」 「placa」 「governo」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 breskott/sinesp 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 breskott/sinesp 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 breskott/sinesp 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Biblioteca para integração com a plataforma de pagamentos Safe2Pay
Middleware para aplicações Web
Utilitários para PHP, biblioteca desenvolvida para faciliar o desenvolvimento em PHP.
Fork da Biblioteca para integração com a plataforma de pagamentos Safe2Pay com suporte para PHP 5.6 e outros fixes.
Pacote de integração de projetos Laravel com o sistema KeyCloak de autenticação e autorização
Validation for the Portuguese market.
统计信息
- 总下载量: 938
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-01-30

