Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

Renova Token

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

(Obrigatório)

Informações Gerais

 

Especificação

Produto

TSS

Módulo

TSS

Segmento Executor

SERVIÇOS

Projeto1

M_SER_TSS002

IRM1

PCREQ-8285

Requisito1

PCREQ-8286

Subtarefa1

 

Chamado2

 

Release de Entrega planejada

12.1.13

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

(Obrigatório)

Objetivo

 

Disponibilizar uma API para gerar um novo Token com base no CNPJ/CPF, IE e UFrenovação do Token de autenticação.

(Obrigatório)

Definição da Regra de Negócio

 A API será na estrutura WS REST com o nome RestNewToken e com apenas o método GET, que receberá a mensagem JSON codificada em base64 e chamará a função GetNewToken() passando a mensagem JSON decodificada.

Através da API de gerar Token, as aplicações cliente do TSS poderão obter um Token para posteriormente validar a conexão do TSS Off-line com o TSS Online. A geração do Token é por CNPJ/CPF, IE e UF. O critério para geração será obtido através dos parâmetros recebidos pela API. A API terá como retorno uma mensagem JSON contendo o Token.

O consumo da API deverá ser realizado através de mensagens JSON em base 64 definidas no WebService RestNewToken.

Os códigos de status serão baseados no formato padrão de mensagens HTTP, conforme o link:

https://pt.wikipedia.org/wiki/Lista_de_c%C3%B3digos_de_status_HTTP

Será gerado um novo TOKEN por cliente e gravado em cache e na tabela TSS0005 do TSS, para validação da mensagem entre o TSS Offline com o TSS Online, este TOKEN deverá ser inserido em uma seção "[TSSOFFLINE]" com a chave "TOKEN" do arquivo de configuração "APPSERVER" do TSS Offline, para que assim possa ser incluído no cabeçalho da mensagem Json.

 

Exemplo de configuração do "APPSERVER" do TSS Offline:

[TSSOFFLINE]

TOKEN=50164fa93121e0d05843576147d0394c0a1b31ee

 

Quando TSSOnline recebe o CNPJ  e o TOKEN no cabeçalho da mensagem, é realizada a autenticação do cliente, checando com o que está gravado na base, se o TOKEN enviado for igual ao TOKEN gravado a comunicação é válida e segue o fluxo da transmissão do documento

 

WebService: RestNewToken()

 

WebService responsável pela definição da Interface da API de Renova Token.renovação do Token de Autenticação.

 

O WebService deverá receber mensagens na estrutura JSON codificado em base 64base64, onde serão decodificadas e passadas como parâmetro para a função GetNewTokengetTSSToken().

 

O retorno do WebService será uma mensagem JSON contendo o Token.

Todos os parâmetros da mensagem serão obrigatórios. 

Parâmetros: 

JSON=eyJlbXByZXNhIjp7ImNucGoiOiI1MzExMzc5MTAwMDEyMiIsInRpcG9wZXNzb2EiOjIsImllIjoiMTExMDEwOTQ1MTExIiwidWYiOiJTUCJ9fQ==

 eyJlbXByZXNhIjp7IkNHQyI6ICI1MzExMzc5MTAwMDEyMiIsInRpcG9wZXNzb2EiOjIsImllIjogIjExMTAxMDk0NTExMSIsInVmIjogIlNQIn19

 

Mensagem JSON

decodificada

sem codificação 64:

 

{

"empresa":{

"CGC

                    "cnpj":"53113791000122","tipopessoa":2,"ie":"111010945111","uf":"SP"

}}

Retorno Negativo:

{

   "TOKEN": "",

   "error": "CGC Inválido"

}
 

Retorno Positivo:

{

   "TOKEN": "a89ad6cf202f3b7f5683a44759a705f294034808",

   "error": null

}

 

Função: GetNewToken()

A função deverá receber mensagens na estrutura JSON, onde serão convertidas em objeto pela função fwJsonDeserialize().

Caso não haja erro na deserialização de JSON para objeto, será chamada a rotina ValEntrada(), passando como parâmetro o objeto.

                  }

}

cnpj: CNPJ do cliente

tipopessoa: 1 = Física ou 2 = Jurídica

ie: Inscrição Estadual do cliente

uf: Unidade Federativa do cliente

A função ValEntrada() retornará uma string contendo o Token, este token será passado na chamada da função getJSONResp() junto com a mensagem de erro (caso exista). O retorno da função getJSONResp() é a mensagem  já na estrutura JSON.

A rotina GetNewToken será finalizada e como retorno será passado a mensagem na estrutura JSON.

Todos os parâmetros da mensagem serão obrigatórios.

 

Parâmetros:

cJsonRequest =

 

{"empresa":{"CGC": "53113791000122","tipopessoa":2,"ie": "111010945111","uf": "SP"}}

 

Retorno Negativo:

{

  

"TOKEN": "",

  

"error": "

CGC Inválido

Mensagem JSON invalida "
}

 

Retorno Positivo:

{

  

"TOKEN": "

a89ad6cf202f3b7f5683a44759a705f294034808",

   "error": null

}

 

Função:  ValEntrada()

A função receberá como parâmetro o objeto da requisição, validará todos os campos quanto a obrigatoriedade, tamanho e tipo de dados. Se algum dado estiver inconsistente, deverá retorna a mensagem de validação correspondente informando.

Os dados contidos no objeto recebido como parâmetro, serão validados afim de identificar quais foram preenchidos, os campos: TipoPessoa,CGC, Inscrição Estadual e UF são obrigatórios.

Com as informações validadas, será chamada a função GetToken(), para essa função serão passados como parâmetros: o CNPJ,CPF,IE e UF. O retorno desta função será uma string contendo o Token.

Após obter o retorno da rotina GetToken(), a função ValEntrada() será encerrada, retornando o Token.

Parâmetros: 

oObjeto – Mensagem JSon deserializada e transformada em Objeto.

@cError – Mensagem de erro.

 

Retorno:

 cToken – String contendo o Token.

Função: GetToken()

Para a geração de um novo Token, a rotina utilizará a função SHA1 (Secure Hash Algorithm) gera o hash (ou digest) de um conteúdo, com base no algoritmo definido em FIPS PUB 180-1 published April 17, 1995. Para a geração do Token serão concatenado os dados: CNPJ, CPF, IE, UF, Data, Hora, Minuto e Segundo.

O token e as informações do Cliente serão incluídos ou atualizados na tabela TSS0005.

O retorno da função será uma string contendo o Token.

 

Parâmetros: 

CNPJ – CNPJ do Cliente.

CPF – CPF do Cliente.

IE – Inscrição Estadual do Cliente.

UF – Unidade da Federação do Cliente.

cError – Mensagem de erro.

Retorno:

cToken  - String contendo o Token.

 

Função: GetJSONResp()

A rotina consiste em obter os dados de entrada e gerar a mensagem em estrutura JSON.

A rotina retornará uma string na estrutura JSON

Parâmetros: 

cToken  - String contendo o Token.

cError – Mensagem de erro.

Retorno:

dcee357e34ba335b7d0264a32796f2ca7f5794dc"
}

 cJSONResponse – String na estrutura JSON.

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.