O Intercâmbio Eletrônico é um produto destinado à comunicação de aplicativos com a Unimed do Brasil. Ele permite que algumas mensagens definidas pela Unimed do Brasil, através do manual do PTU, sejam trafegadas utilizando o protocolo REST e no formato JSON. Além de realizar a comunicação com a Unimed do Brasil ele realiza uma transcrição do modelo REST/JSON para SOAP/XML.
Este produto foi desenvolvido em Asp.Net Core e todas suas dependências são gerenciadas pelo gerenciador de pacotes NuGet. Sendo assim, este aplicativo permite ser executado sobre plataformas Windows ou Linux, sendo também compatível com containers.
Para o seu correto funcionamento são necessários alguns elementos de infraestrutura.
Elementos de Infraestrutura
Todos os elementos de infraestrutura são configurados no arquivo appsettings
- TOTVS RAC: A autenticação e autorização são realizadas pelo TOTVS RAC, portanto se faz necessária uma instância disponível para isso.
- O Cliente oAuth configurado deve ser do tipo Resource Owner
- É necessário configurar um usuário do RAC com a permissão necessária para devolver a resposta de auditoria.
- REDIS: Em algumas transações são armazenadas informações no REDIS. Esta instância deve estar configurada para persistir os dados em caso de queda/reinicialização do REDIS.
- Os certificados digitais (Arquivo P12) por enquanto estão armazenados em um recurso chamado secrets do Kubernetes: https://kubernetes.io/docs/concepts/configuration/secret/. Dessa forma, quando o pod é instanciado, ele já irá conter o certificado.
- Esse mesmo recurso é utilizado nos certificados SSL do domínio da aplicação.
- Para isso deve ser enviado os arquivos dos certificados para a Engenharia.
Arquivos de Configuração
A configuração do Intercâmbio Eletrônico é realizada através do arquivo appsettings.{Ambiente}.json da aplicação. Sendo que o ambiente poderá ser tanto Development como Production definido através da variável de ambiente ASPNETCORE_ENVIRONMENT. Na esteira de build montada para o cloud, estas configurações são sobrescritas pelo Jenkins. A maneira mais eficaz para realizar esta configuração é montar manualmente o arquivo de appsettings e enviá-lo para engenharia atualizar as automações do Jenkins.
Parâmetros do Arquivo de Configuração:
- URLs : Contém URLs para comunicação com a Unimed Brasil e recebimento. Essas URLs são utilizadas através dos endpoints da funcionalidade principal do Intercâmbio Eletrônico, a qual recebe um JSON e envia um XML formatado para a Unimed Brasil.
- URLs.URLPainelAdministrativo - URL do Painel Administrativo utilizada para buscar configurações do Tenant (Não utilizado).
- URLs.RetornoRespostaAuditoria - Serviço que irá receber as respostas de auditoria originadas no Intercâmbio Eletrônico.
- URLs.* - Demais URLs. URLs referentes ao endpoint da Unimed Brasil.
- Proxy - Visto que não é possível efetuar a comunicação com a Brasil através de diferentes domínios, se faz necessária a utilização da funcionalidade de proxy do Intercâmbio Eletrônico para que o ERP já existente não deixe de funcionar sendo que nessas configurações deverão ser informadas as URLs referentes aos ERP para recebimento dos XMLs da Unimed Brasil.
- Proxy.* - Demais URLs. URLs referentes ao ERP já existente.
- IntercambioEletronico - Configurações Gerais do Intercâmbio Eletrônico.
- IntercambioEletronico.GuiaAuditExpirationCache - Tempo de expiração das guias do cache em dias sendo que 0 irá representar permanência no cache. A inclusão da guia no cache ocorre na solicitação de uma guia através do endpoint /v1/authorizationRequests, sendo que não irá ser incluída no cache através da funcionalidade de proxy. Caso a guia esteja no cache quando é recebida uma resposta de auditoria, essa guia é enviada para o caminho informado em URLs.RetornoRespostaAuditoria, caso contrário, será encaminhada através do caminho parametrizado em Proxy.RespostaAuditoria.
- IntercambioEletronico.UserConfigEndpoint - Usuário de autenticação no RAC para resposta de auditoria.
- IntercambioEletronico.PwdConfigEndpoint - Senha de autenticação no RAC para resposta de auditoria.
- IntercambioEletronico.TenantNameConfigEndpoint - Tenant do RAC para resposta de auditoria.
- AuthorityEndpoint - URL do RAC utilizada para autenticação.
- ClientId - ClientId do RAC utilizado para autenticação.
- ClientSecret - ClientSecret do RAC utilizado para autenticação.
- UnimedCertificate - Parametrizações relacionadas ao certificado da Unimed Brasil.
- UnimedCertificate.Path - Caminho absoluto ou relativo referente ao certificado.
- UnimedCertificate.Password - Senha opcional do certificado.
- ERPCertificate - Parametrizações relacionadas ao certificado para comunicação com o ERP.
- ERPCertificate.Path - Caminho absoluto ou relativo referente ao certificado.
- ERPCertificate.Password - Senha opcional do certificado.
- DatabaseIndex - Index da Database do Redis.
- RedisConnectionString - URL de conexão com o Redis.
- Serilog.* - Configurações de Log. https://github.com/serilog/serilog-settings-configuration.