Comunidade

Ask a Question
Back to All

Dúvida na autenticação para criar boleto

Bom dia. Estamos implementando a integração com o BTG para criação de boletos.

Estou usando o processo do Authorization Code. Eu consegui obter o code e consegui obter o token, porem não consegui criar um boleto. Deu mensagem de não autorizado. (Utilizando o access-token).

Obs. No retorno da api, veio o access-token mas não vieram o refresh-token e o id-token

{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6ImF… ","scope":null,"token_type":"Bearer","expires_in":86400}

Eu vi numa outra postagem aqui na comunidade que poderia ser usado o refresh-token para esse processo de autenticação para criação de boletos, porem não consegui entender o por que de não ter retornado o refresh-token.

Estou fazendo a chamada da sseguinte forma:

using (var client1 = new HttpClient())
{
client1.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));
List<KeyValuePair<string, string>> requestData1 = new List<KeyValuePair<string, string>>();
requestData.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
requestData.Add(new KeyValuePair<string, string>("code", authorizationCode));
requestData.Add(new KeyValuePair<string, string>("redirect_uri", redirectUri));
requestData.Add(new KeyValuePair<string, string>("content-type", "application/x-www-form-urlencoded"));
FormUrlEncodedContent requestBody1 = new FormUrlEncodedContent(requestData1);

            HttpResponseMessage response1 = await client.PostAsync($"{parametroUrlToken}", requestBody1);

            string jsonstring1 = response.Content.ReadAsStringAsync().Result;

            AuthenticateApiBtgResponse resp1 =
                JsonConvert.DeserializeObject<AuthenticateApiBtgResponse>(jsonstring1);

            return resp.access_token;
        }