- A configuração dos acessos externos SERASA PJ deve inicialmente passar por uma indicação para a JVM do path do arquivo de properties, do certificado e do log4j; veja abaixo o setting para a JVM (‘-D option‘):
...
| Bloco de código | ||
|---|---|---|
| ||
-Dserasa-relato.datadir=/home/jboss/intellector -Dlog4j.configuration=/home/jboss/intellector -Daccess.ssl=/home/jboss/intellector/ssl |
Para o uso direto em testes, deve-se utilizar (e.g. /home/jboss/intellector).
| Bloco de código | ||
|---|---|---|
| ||
java -jar -cp. -Dserasa-relato.datadir=/home/jboss/intellector SerasaRelato.jar |
| Aviso |
|---|
| Usando a execução acima, não esqueça de colocar no CLASSPATH todas as dependências; e o mesmo para JAVA_OPTS no JBoss. |
‘https.properties‘ – Arquivos de propriedades do certificado e conexão ‘host-to-host‘ com a SERASA.
| Bloco de código | ||
|---|---|---|
| ||
# Arquivo de properties para o SERASA PJ # $Revision: 1.2 $ # # Informações de autenticacao e certificados do serasa user.url=sitenet07.serasa.com.br user.root=/Homologa/consultahttps user.jks=lVaxvlqeVH5ugq/rba5vYvSWhu8kYJqO3Q==O63WLqgqpA== user.cert=/home/jboss/intellector-files/serasa.jks #user.serasa.cert=e:/tools/desv/ws_tec/serasa/resources/serasa.jks |
| Dica |
|---|
Existe no Site do Intellector, uma funcionalidade para configurar os arquivos de propriedades, lá você poderá gerar a senha criptografada. |
| Aviso |
|---|
Configurando SSL e HTTPS, leia aqui; sem Certificado ’não funciona’ e, entenda bem o conceito, leia sobre isso. Esse certificado é fornecido pela própria entidade, tipo host<->host. |
Para efeitos de auditoria, esse plugin persiste os dados da string de Envio e Retorno do acesso (dados brutos), sendo possível consultar esses dados via web service de Auditoria e verificar ou fazer uso dessas strings. O conteúdo dessa string bruta é composto pelos campos que compõe o layout de entrada e saída, especificada na documentação do SERASA.
‘layout_p002.xml‘ – Header do Registro P005 – Parcelas com cheques de Compromisso.
| Bloco de código | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- layout_p002.xml - Registro P002 - Outras Opcoes de Consulta Pessoa Juridica -->
<serasapj>
<field>
<!-- Tipo de registro TIPO-REG -->
<name>P002</name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- codigo da 1a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
<name>IP20</name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- chave de acesso para consultar a 1a opcao se necessario -->
<name>Q</name>
<size>21</size>
<type>S</type>
</field>
<field>
<!-- codigo da 2a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
<name> </name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- chave de acesso para consultar a 2a opcao se necessario -->
<name> </name>
<size>21</size>
<type>S</type>
</field>
<field>
<!-- codigo da 3a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
<name> </name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- chave de acesso para consultar a 3a opcao se necessario -->
<name> </name>
<size>21</size>
<type>S</type>
</field>
<field>
<!-- codigo da 4a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
<name> </name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- chave de acesso para consultar a 4a opcao se necessario -->
<name> </name>
<size>21</size>
<type>S</type>
</field>
<field>
<!-- filler de COMPLEMENTO do registro P002 -->
<name> </name>
<size>11</size>
<type>S</type>
</field>
</serasapj> |
| Bloco de código | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="ISO-8859-1"?>
<serasapf>
<field>
<!-- Layout de consulta P006: trata-se de uma sequencia de S/N, para cada registro -->
<!-- para uma melhor visualizacao e configuracao, verificar o layout de consulta do P006 -->
<name>P006SNSSS9999SSSSSSSN NNNSN</name>
<size>27</size>
<type>S</type>
</field>
<field>
<!-- filler (7): filler de COMPLEMENTO do registro P006 -->
<name> </name>
<size>88</size>
<type>S</type>
</field>
</serasapf> |
| Bloco de código | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="ISO-8859-1"?>
<serasapj>
<field>
<!-- header Credit Bureau -->
<name>B49C</name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- Filler -->
<name> </name>
<size>6</size>
<type>S</type>
</field>
<field>
<!-- NUM_DOC=CPF; está neste XML ilustrando, pois o mesmo é tratado numa -->
<!-- tag de entrada, serve como referencia pra substituicao do real CPF -->
<name>cpf</name>
<size>15</size>
<type>N</type>
</field>
<field>
<!-- Tipo Pessoa F=pessoa fisica; J=pessoa juridica -->
<name>J</name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- Base de consulta -->
<name>C</name>
<size>6</size>
<type>S</type>
</field>
<field>
<!-- Modalidade -->
<name>FI</name>
<size>2</size>
<type>S</type>
</field>
<field>
<!-- valor da consulta -->
<name>8888888</name>
<size>7</size>
<type>N</type>
</field>
<field>
<!-- Centro de custo -->
<name> </name>
<size>12</size>
<type>S</type>
</field>
<field>
<!-- Codificado (S/N) -->
<name>N</name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- quantidade de registros por transmissao de dados -->
<name>99</name>
<size>2</size>
<type>N</type>
</field>
<field>
<!-- Deseja dialogo de comunicacao (S/N) -->
<name>S</name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- Funcao: INI,CON,ENC,ERR,TMD,FIM -->
<name>INI</name>
<size>3</size>
<type>S</type>
</field>
<field>
<!-- Tipo de consulta -->
<name>A</name>
<size>1</size>>
<type>S</type>
</field>
<field>
<!-- atualiza dados enviados (S/N) -->
<name>N</name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- Filler (2) -->
<name> </name>
<size>42</size>
<type>S</type>
</field>
<field>
<!-- quantidade de cheques sequenciais -->
<name>00</name>
<size>2</size>
<type>N</type>
</field>
<field>
<!-- endereço + telefone -->
<name>N</name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- filler (3) -->
<name> </name>
<size>8</size>
<type>S</type>
</field>
<field>
<!-- conta corrente -->
<name>0000000000</name>
<size>10</size>
<type>N</type>
</field>
<field>
<!-- digito da conta corrente -->
<name>0</name>
<size>1</size>
<type>N</type>
</field>
<field>
<!-- agencia -->
<name>0000</name>
<size>4</size>
<type>N</type>
</field>
<field>
<!-- filler (4) -->
<name> </name>
<size>61</size>
<type>N</type>
</field>
<field>
<!-- quantidade de compromisso encontrados -->
<name> </name>
<size>2</size>
<type>N</type>
</field>
<field>
<!-- tem anotacoes negativas (S/N/B) -->
<name> </name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- anotacoes de cheques (S/N/B) -->
<name> </name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- data da consulta -->
<name> </name>
<size>8</size>
<type>S</type>
</field>
<field>
<!-- hora da consulta -->
<name> </name>
<size>6</size>
<type>S</type>
</field>
<field>
<!-- total de registros -->
<name> </name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- quantidade de registros enviados por transmissao -->
<name> </name>
<size>4</size>
<type>N</type>
</field>
<field>
<!-- numero de controle de atualizacao das tabelas -->
<name> </name>
<size>4</size>
<type>S</type>
</field>
<field>
<!-- filler (5) -->
<name> </name>
<size>176</size>
<type>S</type>
</field>
<field>
<!-- acessou recheque online (S/N) -->
<name>N</name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- tem ocorrencia de Recheque ultimo ano (S/N) -->
<name>N</name>
<size>1</size>
<type>S</type>
</field>
<field>
<!-- filler (6) -->
<name> </name>
<size>1</size>
<type>S</type>
</field>
</serasapj> |
| Bloco de código | ||
|---|---|---|
| ||
# Arquivo de properties para o SERASA PJ # $Revision: 1.2 $ # # type S=string, N=numeric # # Informaçoes de Login no SERASA serasa.login=00186487 serasa.login_size=8 serasa.login_type=N serasa.password=11003344 serasa.pass_size=8 serasa.pass_type=S serasa.newpass= serasa.npass_size=8 serasa.npass_type=S |
...
Esse será o método usado pelo reflection da politica.
| Bloco de código | ||
|---|---|---|
| ||
<!-- metodo de acesso para ser carregado no acesso --> <code name="br.com.tools.acessos.serasa.SerasaPJ"/> |
| Bloco de código | ||
|---|---|---|
| ||
<!-- esse deverah ser sufixo para ser acrescentado ao nome --> <!-- vindo da politica, entao irei buscar na hash da politica --> <!-- hash.getKey(cnpj_serasa); um de/para para os elementos --> <nome_acesso>serasapj</nome_acesso> |
Exemplo:
| Bloco de código | ||
|---|---|---|
| ||
serIn.put("CNPJ", "0000000000191"); |
Exception:
| Bloco de código | ||
|---|---|---|
| ||
throw new LayoutException("Erro preenchendo HashMap " + this.toString()); |
| Dica |
|---|
| Contador’ – sempre existe um atributo no XML nomeado ’counter’ como indexador dos registros |
...
| Bloco de código | ||
|---|---|---|
| ||
<!-- contem os dados necessarios para entrada no serasa PJ -->
<entrada>
<!-- posso testar pelo valor obrigatorio dentro de cada -->
<!-- acesso, ele dever ser "CNPJ" -->
<field description="CNPJ da empresa consultada" type="String" format="">CNPJ</field>
</entrada> |
...
...