mpma / serpro-proid-consumer
ProId SERPRO API 的消费者
2.0.0
2020-06-18 13:35 UTC
Requires
- guzzlehttp/guzzle: ^6.5
This package is auto-updated.
Last update: 2024-09-19 22:31:13 UTC
README
此库的目的是将 SERPRO 的 ProID API 用于文档的发行、封锁、限制、解封和删除,以及向 ProID 应用发送消息。
由马拉尼昂州人民检察院现代化与技术协调处开发。
安装
要在您的项目中安装此库,请使用 composer
composer require mpma/serpro-proid-consumer:2.0.0
由 SERPRO 提供的数据
以下数据将由 SERPRO 提供,在测试和生产环境中有所不同。括号内是以下示例中使用的参数名称。
- 基本 URL (
$config->baseUrl
) - 认证 URL (
$config->authUrl
) - 应用程序 ID (
$config->appId
) - 应用程序密钥 (
$config->appKey
) - 认证范围 (
$config->scope
) - 成员文档 ID (
$config->docIdMembro
) - 服务器文档 ID (
$config->docIdServidor
)
使用示例
脚本的基本结构
use \MPMA\ProIDConsumer\Service\Consumer, \MPMA\ProIDConsumer\Model\VO\ImagemFuncional, \MPMA\ProIDConsumer\Model\VO\ImagensFuncionais, \MPMA\ProIDConsumer\Model\VO\DadosFuncionais, \MPMA\ProIDConsumer\Model\CarteiraFuncional, \MPMA\ProIDConsumer\Model\Autenticacao; require 'vendor/autoload.php'; $authConsumer = new Consumer(); $dataConsumer = new Consumer(); $authConsumer ->setBaseUrl($config->authUrl) ->setDebug(true); $autenticacao = new Autenticacao($authConsumer); $token = $autenticacao ->setAppId($config->appId) ->setAppKey($config->appKey) ->setScope($config->scope) ->getToken(); $dataConsumer ->setBaseUrl($config->baseUrl) ->setDebug(true) ->setToken($token);
添加新文档
$dadosFuncionais = new DadosFuncionais(); $dadosFuncionais ->setNumeroRegistro('0000001') // matrícula ->setNome('RICARDO AUGUSTO MARTINS COELHO') ->setCargo('ANALISTA MINISTERIAL') ->setEspecialidade('INFORMATICA') ->setRG('123456789-0') ->setEmissorRG('SSP') ->setUFRG('MA') ->setDtEmissaoRg('01/01/2001') ->setCPF('123.456.789-00') ->setDtNascimento('01/01/2000') ->setNaturalidade('SAO LUIS') ->setNomePai('NOME DO PAI') ->setNomeMae('NOME DA MAE') ->setUFNascimento('MA') ->setNacionalidade('BRASIL') ->setGrupoSanguineo('X') ->setFatorRH('+/-') ->setLocalExpedicao('SAO LUIS') ->setDataExpedicao('31/12/2020') ->setCodigo('123456'); // senha $foto = new ImagemFuncional(); $foto->load('assets/foto.jpg'); $assinatura = new ImagemFuncional(); $assinatura->load('assets/assinatura.png'); $assinatura_pgj = new ImagemFuncional(); $assinatura_pgj->load('assets/assinatura_pgj.png'); $assinatura_pgj->chave = 'assinatura_presidente'; // chave SERPRO desta imagem /* Este QRCode é gerado internamente e só é apresentado na cópia digital * da carteira impressa. Não confundir com o QRCode Vio, gerado pelo * ProID autormaticamente. */ $qrcode = new ImagemFuncional(); $qrcode->load('assets/qrcode.png'); $qrcode->chave = 'qrcode'; // chave SERPRO desta imagem $imagensFuncionais = new ImagensFuncionais(); $imagensFuncionais ->setFoto($foto) ->setAssinatura($assinatura) ->setOutrasImagens([ $assinatura_pgj, $qrcode ]); $carteira = new CarteiraFuncional( $dataConsumer, $config->docIdServidor, // ou $config->docIdMembro $dadosFuncionais, $imagensFuncionais ); $carteira->add();
管理文档
$dadosFuncionais = new DadosFuncionais(); $dadosFuncionais->setNumeroRegistro('0000001'); // matrícula $carteira = new CarteiraFuncional( $dataConsumer, $config->docIdServidor, // ou $config->docIdMembro $dadosFuncionais ); /* Bloqueia o documento */ $carteira->block('Motivo do bloqueio'); /* Adiciona restrição a um documento */ $carteira->restrict('Descrição da restrição'); /* Ativa (remove bloqueios e/ou restrições) um documento */ $carteira->activate(); /* Exclui o documento */ $carteira->delete();
发送定向消息
$carteira = new CarteiraFuncional( $dataConsumer, $config->docIdServidor // ou $config->docIdMembro ); $carteira->sendMessage( 'Teste de mensagem direcionada', // título 'Este é um teste de mensagem ProID', // conteúdo [ '0000001' ], // matrículas dos destinatários [ 'https://www.mpma.mp.br' => 'Site do Ministério Público do Estado do Maranhão' ] // link (opcional) );
sendMessage
方法接受两个可选参数,用于指定消息的开始和结束有效时间。这些字段是带有 timezone 的 timestamp 类型,可以使用 date('Y-m-d\TH:i:s-03:00')
生成。
向所有人发送消息
$carteira = new CarteiraFuncional( $dataConsumer, $config->docIdServidor // ou $config->docIdMembro ); $carteira->sendBroadcast( 'Teste de mensagem geral', // título 'Este é um teste de broadcast ProID. Não é necessário informar destinatários.', // conteúdo [ 'https://www.mpma.mp.br' => 'Site do Ministério Público do Estado do Maranhão' ] // link (opcional) );
sendBroadcast
方法接受两个可选参数,用于指定消息的开始和结束有效时间。这些字段是带有 timezone 的 timestamp 类型,可以使用 date('Y-m-d\TH:i:s-03:00')
生成。