Histórico de Revisões

Documentos relacionados
Histórico de Revisões

Histórico de Revisões

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 4 PROF. EMILIO PARMEGIANI

1 handshake 2 consulta 3 alterausuario

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS

Cartórios de Registro de Imóveis

A função get_class() retorna uma string contendo o nome da classe do objeto passado como parâmetro:

Consulta de endereço através do Cep

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. quarta-feira, 17 de outubro de 12

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani

Registro de Imóveis e Registro Civil das Pessoas Jurídicas

Associação 1:1. Baseado no Diagrama de Classe a seguir, iremos criar as classes de Modelagem que compõem a Associação de Piloto com Carro.

Linguagem de Programação III - PHP

JAVA. Professor: Bruno Toledo

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

JavaScript Fundamental e Servlet Fundamental

Palavras Reservadas da Linguagem Java

TPG RELATÓRIO DE PROJETO. folitécnico 1 dalguarda Polyteehnic of Guarda. Licenciatura em Engenharia Informática. Pedro Daniel Tomás de Almeida

Tutorial. Começando a Criar Aplicativos SMS

Linguagem Algorítmica OO. Linguagem Algorítmica

Manual de Integração DOCUMENTAÇÃO TÉCNICA. Especificação para integração via API, Webservices e SMPP.

Coletando dados utilizando a API do Zabbix com PHP e JSON

Desenvolvimento de Sistemas para WEB Site:

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

PREFEITURA DO MUNICÍPIO DE OSASCO MANUAL PARA EMISSÃO DE NFS-E EM TEMPO REAL VIA WEBSERVICE

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

A sintaxe básica para definir uma função é: function nome_da_função([arg1, arg2, arg3]) { Comandos;... ; [return <valor de retorno>]; }

Login. Criar um novo website File > New > WebSite Framework 4.5 Visual C# ASP.NET Empty Web Site Nome do projeto: WebLogin

Tutorial C# - Delegates e Eventos...

4. Constantes. Constantes pré-definidas

Desenvolvimento Web II

//Um contador para o número do pedido private int contador = 1; public jrealizarvenda() { InitializeComponent(); }

Professor Jefferson Chaves Jefferson de Oliveira Chaves

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

Algoritmos II prof. Daniel Oliveira

CORBA IDL. Interface Definition Language. Mário Meireles Teixeira.

Configurando e-cpf no Portal Web do SARA - Versão Protheus

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Construção de Sites 2. Prof. Christiano Lima Santos

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Aula07 Forms Authentication

Login Google. Copie a SSL URL, que no meu caso é

Login. Criar uma pasta Repositories na raiz do projeto. Criar uma classe Funcoes.cs dentro da pasta Repositories.

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV1-01. Luiz Leão

Assina Web S_Line Manual de Uso

Validação de dados no PHP

Para o carregamento das DropDownList usar métodos:

Módulo 9 VARIÁVEIS, TIPOS DE DADOS, OPERADORES, ESTRUTURAS DE CONTROLO P S I C P T G P S I

API PAGAMENTOS. Todas requisições devem ser feitas para o endpoint

SISTEMAS DE LOG, TRATAMENTO DE ATAQUES E ERROS PROF.: PAULO RICARDO LISBOA DE ALMEIDA

Instituto de Informática Estrutura de Dados II

Instrumentação do NEON via WebSocket Especificação dos serviços de instrumentação do NEON através de conexões WebSocket.

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

VB.NET - Orientação a objetos : conceitos básicos em 10

Manual de Uso Consulta Eletrônica

Linguagem de Programação III

PREFEITURA DO MUNICÍPIO DE OSASCO MANUAL PARA EMISSÃO DE NFS-E EM TEMPO REAL VIA WEBSERVICE

Layout de integração com webservices de clientes. Resultado de exames

Integração com o Mercado Livre Passo a Passo

Manual de Integração do icarta

Curitiba DOCUMENTAÇÃO WebService PGSMS e PG Versão 1.0

5 Detalhamento da arquitetura para OnOCs

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Professor Jefferson Chaves Jefferson de Oliveira Chaves

Linguagem de Programação III

Programação Orientada a Objetos

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Views. objconexao = Mapped.Connection(); objcommand = Mapped.Command("SELECT * FROM vw_todoscarros_com_piloto", objconexao);

JavaScript (Elementos de Programação e Programação Básica)

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Google Chart. Adicionando Action No PublicoController, adicionar o trecho. Adicionar View Botão direito na Action acima, Add View.

Comunicado: Janela de Manutenção do Sistema GAR 09/08/2012. Departamento de Produtos Agosto/2012

2017/07/25 19:38 1/10 DocFix

PRDS C#.Net Alexandre L. Silva

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Aplicação de cadastros JavaScript

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

Lists. Aproveitando o projeto WebLogin, vamos ver como implementar alguns componentes de lista (DropDownList, RadioButtonList e CheckBoxList).

Linguagem de Programação II Implementação

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Prof Evandro Manara Miletto. parte 1

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Detalhes da geração de código Usando a técnica ad hoc, amarrada aos procedimentos sintáticos, igual à análise semântica

Manual de Integração Cartórios

Apostila - Desenvolvimento web com PHP

LÓGICA DE PROGRAMAÇÃO (JAVA) CLASSES E OBJETOS. Professor Carlos Muniz

Manual de Instalação NF-e Captura Express

Programação para Internet

Aula 04 Manipulação e Tipos de Dados em PHP. Prof. Pedro Baesse

Linguagem Técnica de Programação III Introdução a PHP

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Introdução ao Javascript

Transcrição:

1

Histórico de Revisões Data Versão Responsável Histórico 22/11/2016 1.0 Robson M. Matos Elaboração da documentação técnica 21/06/2018 1.1 Robson M. Matos Inclusão do método consulta, removido método pesquisa. Histórico de Revisões 2 1. Definição e Escopo 4 2. Requisitos de Segurança 5 3. Métodos 6 3.1. Descrição geral dos métodos 6 3.2. Descrição explicativa dos métodos 6 3.3. Descrição geral dos parâmetros dos métodos 7 3.3.1. pauth 7 3.3.2. pconsulta 7 3.4. Descrição explicativa dos valores de saídas dos métodos 8 3.4.1. Retorno Padrão 8 3.4.2. retornoconnect 8 3.4.3. retornochallenge 8 3.4.4. retornoconsulta 8 4. Definição de Regras e Serviços (em PHP) 9 4.1. Considerações 9 4.2. URL do Sistema e do WebService - Produção e Testes 9 4.3. Instanciando o WebService 9 4.4. Método: challenge_generator 10 2

4.5. Chamando o script de autenticação 10 4.6. Método: auth - processo de autenticação 10 4.7. Método: consulta 11 5. Definição de Regras e Serviços (em C#) 12 5.1. Instanciando o WebService 12 5.2. Método: challenge_generator 13 5.3. Método: auth 13 5.4. Método: consulta 14 3

1. Definição e Escopo O presente documento visa especificar a implementação do WebService da Central Nacional de Indisponibilidade de Bens, bem como seu funcionamento. Este documento trará exemplos em PHP e C#. 4

2. Requisitos de Segurança O modelo de segurança consiste na autenticação via certificado digital, com o WebService gerando um desafio e, com este desafio mais os dados de autenticação do usuário, a extensão do navegador gera uma assinatura e um certificado, que são enviados novamente pelo WebService, juntamente com o token de acesso do Registrador de Imóveis, para autenticação do usuário. 5

3. Métodos Aqui veremos todos os métodos do WebService e suas descrições. Os parâmetros dos métodos são objetos com propriedades descritas em Descrição geral dos parâmetros dos métodos. 3.1. Descrição geral dos métodos auth (pauth AS auth) AS retornoconnect challenge_generator () AS retornochallenge consulta (pconsulta AS consulta) AS retornoconsulta 3.2. Descrição explicativa dos métodos auth: Objetivo: Autenticar o usuário no sistema utilizando certificado digital; challenge_generator: Gerar um desafio para utilizar na autenticação; consulta: Consulta se determinado documento (CPF ou CNPJ) possui indisponibilidade. 6

3.3. Descrição geral dos parâmetros dos métodos 3.3.1. pauth challenge: String Desafio gerado pelo WebService para autenticação; signature: String Assinatura do challenge gerada pelo Java Applet após escolha do certificado; certificate: String Certificado digital do usuário; token: String Token de acesso único para o Registrador de Imóveis que deverá ser utilizado na autenticação. 3.3.2. pconsulta session_id: String ID de sessão entregue pelo WebService após a autenticação; documento: String CPF ou CNPJ desejado. 7

3.4. Descrição explicativa dos valores de saídas dos métodos 3.4.1. Retorno Padrão Todas as requisições retornam um objeto "retorno" com duas propriedades, a propriedade "info" retorna uma propriedade denominada faultmessage, do tipo String, que poderá vir em branco. retorno.success = Boolean; // sucesso ou não da requisição retorno.info = Object; // dados da resposta retorno.info.faultmessage = String; // mensagem de erro Daqui para frente trataremos apenas o objeto propriedade info. 3.4.2. retornoconnect info.session_id = String; // id de sessão que será utilizado em todo o sistema. 3.4.3. retornochallenge info.challenge = String; // desafio que será gerado na autenticação. 3.4.4. retornoconsulta info.documento = Object; // Objeto de retorno do documento consultado info.documento.documento = String; // documento consultado (CPF, CNPJ) info.documento.nrprotocolos = Integer; // quantidade de ordens que está indisponível info.documento.mensagem = String; // Mensagem de retorno sobre o documento info.hash = String; // Hash da consulta contendo 40 caracteres hexadecimais 8

4. Definição de Regras e Serviços (em PHP) 4.1. Considerações 1. Todo método retorna um objeto nomeado retorno com os dados da requisição; 2. O objeto retorno possui a propriedade success, no formato booleano, que informa se a requisição ao método obteve sucesso, ou não; 3. O objeto retorno possui um sub-objeto nomeado info onde tem as propriedades com os dados solicitados, como a propriedade session_id, para o método auth ; 4. O sub-objeto info do retorno de todos os métodos possui uma propriedade chamada faultmessage, do tipo String, que será preenchida com a mensagem de erro caso a propriedade success do objeto retorno seja false. 4.2. URL do Sistema e do WebService - Produção e Testes Central Nacional de Indisponibilidade de Bens Produção: https://www.indisponibilidade.org.br/ Testes: https://homolog.indisponibilidade.org.br/ A URL abaixo deverá ser usada para conexão com o WebService. Produção: http://www.indisponibilidade.org.br/wsdl/tabeliao/ Testes: http://homolog.indisponibilidade.org.br/wsdl/tabeliao/ Daqui para frente, nos referiremos a ela por $url. 4.3. Instanciando o WebService Aqui você vai ver como deve ser instanciado o WebService <?php $serv = new SoapClient("$url");?> 9

4.4. Método: challenge_generator Aqui veremos como gerar um desafio para ser utilizado na autenticação por certificado digital.a <?php $serv = new SoapClient("$url"); $challenge = $serv->challenge_generator()->retorno->info->challenge;?> 4.5. Chamando o script de autenticação Veremos agora como deve ser chamado o Java Applet para autenticação com o certificado digital. authurl: URL que receberá o POST com as informações para autenticação. <script src="https://www.indisponibilidade.org.br/icp/bravo.php>"></script> <script> arispbravo.carrega({ authurl: targeturl, challenge: "<?php echo $challenge;?>", showbox: showboxcontent, callback: function() { // conteúdo para callback ); </script> challenge: O desafio gerado no passo anterior showbox: Uma linha de código ou a instancia de um objeto do HTML para servir de gatilho para o autenticador callback: função que será executada após carregar o Java Applet, por exemplo, pode mandar exibir o showbox caso esteja oculto. 4.6. Método: auth - processo de autenticação Nesta parte veremos como deve ser feita a autenticação utilizado os valores enviados pelo processo acima. <?php $serv = new SoapClient("$url"); $auth = array( "challenge" => $_POST["challenge"], "signature" => $_POST["signature"], "certificate" => $_POST["certificate"], "token" => "LilH4NDK9NY93d/zHbhdDv2+VOkv/tzIwjRY44YeIijvmeKVaJjvKmfO9xfQO+BktEo5+RfElgkQ/ Uy87YV4XDWE0EutmhQzmgoj2/SckWBirIPMFRk6MRkzpF3opLvicxcLpn3YI7zspf0K/ di8atfctgq6dgqs5tduojyjstxvebbg9a7vhh0irdulhs26" ); $conn = $serv->auth($auth)->retorno; if ($conn->sucess) { $session_id = $conn->info->session_id; else { echo $conn->info->faultmessage;?> 10

4.7. Método: consulta Agora iremos consultar se uma determinada pessoa está indisponibilizada, ou não. <?php $serv = new SoapClient("$url"); $consulta = array ( "session_id" => $session_id, "documento" => '12345678901' ); $retorno = $serv->consulta($consulta)->retorno; if ($retorno->success) { print_r($retorno->info->documento); echo $retorno->info->hash; else { echo $auth->info->faultmessage;?> 11

5. Definição de Regras e Serviços (em C#) Agora iremos ver os mesmos exemplos acima, só que utilizando C#. 5.1. Instanciando o WebService Após declarar o WSDL no C#, nomeando de CNI, vamos criar uma instancia do WebService. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication3 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { cni.serv serv = new cni.serv(); 12

5.2. Método: challenge_generator using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication3 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { cni.serv serv = new cni.serv(); string challenge = serv.challenge_generator().retorno.info.challenge; 5.3. Método: auth using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication3 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { cni.serv serv = new cni.serv(); cni.auth auth = new cni.auth(); var html = HttpContext.Current; auth.challenge = html.request.form["token"] = "LilH4NDK9NY93d/zHbhdDv2+VOkv/ tziwjry44yeiijvmekvajjvkmfo9xfqo+bkteo5+rfelgkq/uy87yv4xdwe0eutmhqzmgoj2/ SckWBirIPMFRk6MRkzpF3opLvicxcLpn3YI7zspf0K/di8AtFCtGq6dgQs5tdUOjyjsTxvEBBG9A7Vhh0IRdULHs26"; auth.challenge = html.request.form["challenge"]; auth.signature = html.request.form["signature"]; auth.certificate = html.request.form["certificate"]; var retorno = serv.auth(auth).retorno; if (retorno.success) { string session_id = retorno.info.session_id; else { Response.Write(retorno.info.faultMessage); 13

5.4. Método: consulta 10/24/14 04:11:42 Untitled using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication3 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string session_id = ""; cni.serv serv = new cni.serv(); cni.consulta consvars = new cni.consulta(); pesqvars.session_id = session_id; pesqvars.documento = "12345678901"; var retorno = serv.consulta(consvars).retorno; if (retorno.success) { var documento = retorno.info.documento; var hash = retorno.info.hash; else { Response.Write(retorno.info.faultMessage); 14