Em meu sistema utilizo envio de Boletos de diversas contas e quando isso acontece o SDK continua a usar o Token (devido ser static) com dados da primeira conta enviada.
Por exemplo, vamos supor que eu precise criar 2 boletos e meu usuário ao lado dos boletos ele tem a opção de selecionar a "conta de cobrança" de cada boleto. Quando envio o primeiro boleto ele faz a autenticação e salva o token com o clientId e clienteSecret do primeiro boleto. A enviar o segundo boleto, o Gerencianet.SDK verificar se o token(nesse caso com dados do primeiro boleto) está nulo (Endpoint.cs, linha 57), se não tiver nulo ele usa o Token(com dados do primeiro boleto).
Ou seja, independente do clientId e clienteSecret passados no construtor do Endpoint.cs, ele sempre vai usar os dados da primeira autenticação. Ele faz a transmissão porem a conta que ele recebe é diferente da desejada.
Possível solução: criar um objeto "TokenValueObject" que sera composto do Token, ClientId e ClientSecret, e ao invés de armazenar somente o token, armazenar dados do client do token, salvar esse TokenValueObject e a cada requisiçaõ de autenticação comparar alem do token os dados do Client entre o token e os dados passado no construtor do Endpoint.cs.
Caso seja necessário posso efetuar a alteração e enviar um PR para analise.
Alexandre Laranjeiras
[email protected]
![Gerencianet_Anotação 2020-04-08 221146](https://user-images.githubusercontent.com/6052106/78848301-b9cf5380-79e7-11ea-98f0-8ce297720daa.png)