Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
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).
Disponibilizar uma API para gerar um novo Token com base no CNPJ/CPF, IE e UFrenovação do Token de autenticação.
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:
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
decodificadasem codificação 64:
{
"empresa":{
"CGC"cnpj":"53113791000122","tipopessoa":2,"ie":"111010945111","uf":"SP"
}}
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álidoMensagem JSON invalida "
}
Retorno Positivo:
{
"TOKEN": "
a89ad6cf202f3b7f5683a44759a705f294034808",
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.
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.
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
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. |
---|