Comunidade
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;
}