Author Image

placa_preta

Mar 17, 2021

Acesso às APIs em C# com Certificados

integraçãoC#APIexemploacessoconsultasPIXcertificado

Boa tarde. Existe algum repositório de códigos em linguagem C# com exemplos de acesso às Apis?

Respostas (8):
Avatar discord do usuario rubenskuhl

rubenskuhl

17/03/2021

Também do <@!781928420757864468> :
// modelo funcional
public void GerarTokenGN(string client_id, string client_secret)
{
// força o uso do protocolo TLS, caso o protocolo padrão seja SSL ou outro protocolo
//ServicePointManager.Expect100Continue = true;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;

X509Certificate2 uidCert = new X509Certificate2("NOME_DO_CERTIFICADO.p12", "");
var client = new RestSharp.RestClient("https://api-pix-h.gerencianet.com.br/oauth/token");
client.ClientCertificates = new X509CertificateCollection() { uidCert };
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + System.Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", client_id, client_secret))));
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\"grant_type\":\"client_credentials\",\"client_id\":\"" + client_id + "\",\"client_secret\":\"" + client_secret + "\"}", ParameterType.RequestBody);
IRestResponse restResponse = client.Execute(request);
string response = restResponse.Content;

Console.WriteLine(response);
}

Avatar discord do usuario rubenskuhl

rubenskuhl

17/03/2021

Com o comentário dele: Certifique-se de estar usando .Net Framework 4.6.1 ou superior. Versões anteriores do .Net Framework não utilizam TLS por padrão.
Para versão anterior a 4.6.1 do .Net Framework, descomente as duas primeiras linhas do código

Avatar discord do usuario placa_preta

placa_preta

17/03/2021

Vou dar uma olhada qual versão estou usando. Esse endpoint pra obter o Token consegui acessar de boa. Estou com dificuldade de acessar as outras apis? É preciso anexar o certificado em todas elas ou só na que obtem o token mesmo?

Avatar discord do usuario placa_preta

placa_preta

17/03/2021

como está teu código da que acessa a consulta de pix (\v2\pix)

Avatar discord do usuario rubenskuhl

rubenskuhl

17/03/2021

O que eu entendo do padrão do BACEN é que todas as requisições precisem do certificado.

Avatar discord do usuario rubenskuhl

rubenskuhl

17/03/2021

Não usamos C#...

Avatar discord do usuario sady_efi

sady_efi

17/03/2021

Todas as requisições pros serviços Pix tem de conter o certificado

Avatar discord do usuario placa_preta

placa_preta

17/03/2021

Ok, valeu Sady. Estava imaginando que só era necessário o token nas outras requisições