Boa tarde, estou fazendo a homologação com o ITAU via API, e alguns detalhes precisaram ser alterados nas units do ACBR para que funcionasse.
Na unit ACBrBoletoW_Itau_API foi necessário alterar 2 constantes, sendo elas a URL de homologação e o tipo de Authorization, segundo o manual https://devportal.itau.com.br/nossas-apis/itau-ep9-gtw-cash-management-ext-v2
C_URL_HOM = 'https://devportal.itau.com.br/sandboxapi/cash_management_ext_v2/v2';
tem que ser
C_URL_HOM = 'https://sandbox.devportal.itau.com.br/itau-ep9-gtw-cash-management-ext-v2/v2';
C_AUTHORIZATION_HOM = 'x-sandbox-token';
tem que ser
C_AUTHORIZATION_HOM = 'Authorization';
Sem essas alterações, estava retornando o erro de "Token inválida ou expirada", mesmo a token sendo gerada corretamente.
Print da unit ACBrBoletoWS.Rest com as constantes erradas:
Print da unit ACBrBoletoWS.Rest com as constantes corretas:
Obs: Todos esses dados são fictícios gera
Já na unit ACBrBoletoRet_Itau_API existe um erro de lógica na função "Ler Retorno", a atribuição da variável HTTPResultCode(Variável Global) para a variável ARetornoWS.HTTPResultCode está acontecendo dentro de um 'with' com o próprio ARetornoWS, então ele está atribuindo o valor dele à ele mesmo, em vez do valor da variável global.
apenas removi essa linha de dentro do 'with' e meu problema foi resolvido