Termos mais procurados:
Termos mais procurados:
Tipo outra pasta com o nome "pix" ou um arquivo tipo pix.json?
Precisa, algo com o nome pix que será acionado pelo webhook.
Já tentei renomear de olimppiuspix.crt.pem para olimppiuspixcrt.pem (pensando ser problema na extensão do arquivo) e dá a mesma coisa...
{
"sandbox": false,
"chave": "27920008182",
"recebedor": "suainscricao.com",
"homologacao": {
"nome_certificado": "certificado.pem",
"client_id": "Client_Id...",
"client_secret": "Client_Secret...",
"pix_url_auth": "https://api-pix-h.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix-h.gerencianet.com.br/v2/cob",
"pix_url": "https://api-pix-h.gerencianet.com.br/v2/pix"
},
"producao": {
"nome_certificado": "certificado.pem",
"client_id": "id aqui",
"client_secret": "Client_Secret_aqui",
"pix_url_auth": "https://api-pix.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix.gerencianet.com.br/v2/cob",
"pix_url": "https://api-pix.gerencianet.com.br/v2/pix"
}
}
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);
}
Este endereço: https://gerarqrcodepix.com.br/api/v1?nome=PAGAMENTOSRENOVACAOAUTOPIX&cidade=Rio+de+Janeiro&location=qrcodes-pix.gerencianet.com.br%2fv2%2fc04644cfd18144db9e7f253c20b56e15&mcc=7274&saida=br&tamanho=256 me devolveu o seguinte link: pix.gerencianet.com.br/v2/c04644cfd18144db9e7f253c20b56e155204727453039865802BR5925PAGAMENTOSRENOVACAOAUTOPI6014Rio de Janeiro6207050363048DAA se eu acessar esse link a gerencianet me devolve página não encontrada
O nome não é retornado e sim as informações do Pix como o e2eid, valor, horario e infoPagador. O nome não está previsto no manual do Pix definido pelo BACEN
$body = [
"calendario" => [
"expiracao" => 3600
],
"devedor" => [
"cpf" => preg_replace('/[^0-9]/is', '', $USER->profile['cpf']),
"nome" => fullname($USER)
],
"valor" => [
"original" => "0.01"
],
"chave" => "" // faça um chamado com CHAVE vazia
];
$pix = $api->pixCreateImmediateCharge([], $body);
Boa tarde garcialuige, pelo nome TRUFA SHOP acredito que você esteja seguindo os vídeos do DevPleno, no entanto essas falhas retornadas não são referentes da API-Pix e sim relacionadas a promises. DE qualquer forma temos um exemplo de autenticação pronte em node que você pode se baser/utilizar caso queira:
Error: 500 Internal Server Error: [{"nome":"erro_aplicacao","mensagem":"Ocorreu um erro ao requisitar o pix"}]
Para quem não está conseguindo gerar o Token a partir do exemplo C# da Gerencianet.
No exemplo da Gerencianet tem uma variável "cities" contendo o client_id e client_secret, mas nunca é usada.
O Authorization está fixo, mas você deve substituí-lo pelo authorization base64 gerado a partir de seu client_id e client_secret.
O parameter "application/json" tem o grant_type=client_credentials, mas não tem as credenciais no body.
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
Atenção: atente-se ao ambiente de homologação/produção e faça a alteração necessária.
// 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);
}
Neste exemplo, exibe um que contém esta informação. Segue um exemplo completo:
Bom dia pessoal, meu nome é João Veroneze estou como algumas duvidas sobre a API PIX de vocês, nela é possível gerar uma cobrança e via API consultar se esta cobrança foi paga, sem a necessidade de uma pessoa consultando um painel de gerenciamento?
{
"nome": "pix_nao_encontrado",
"mensagem": "Nenhum pix encontrado para o identificador informado"
}
Então não apareceria:
[email protected][Pix.ae]5204000053039865802BR5925Obter o nome da Chave Pix6003Pix620705036304F585
Mas sim:
[Pix Copia e Cola]
Oi Pessoal, bom dia!
Estamos com dificuldades em configurar o MTLS. Configuramos 3 host:
1) https://webhook.site/528aa31a-0858-4b51-b923-6a07f9f877c1
Resposta da API da Gerencianet:
{
"nome": "webhook_invalido",
"mensagem": "A autenticação de TLS mútuo não está configurada na URL informada"
}
Esse post chega em nosso ambiente: "evento": "teste_webhook".
2) https://mtls-pix.clicksign.me/pix - Sem MTLS - Não chega o POST ( "evento": "teste_webhook")
{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ERR_TLS_CERT_ALTNAME_INVALID"
}
Esse post não chega em nosso ambiente.
3) https://mtls-pix.clicksign.dev/pix - Com MTLS - Não chega o POST ( "evento": "teste_webhook")
{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ERR_TLS_CERT_ALTNAME_INVALID"
}
Esse post não chega em nosso ambiente.
Bom dia, Flavio!
Primeiramente, seu cliente deve acessar https://sistema.gerencianet.com.br/ logar na conta. Para obter as credenciais, deverá criar uma aplicação, acessando o menu API->Minhas aplicações->Nova aplicação. Insira o nome da sua aplicação. Ative os escopos desejados do Pix para o ambiente (Produção ou Homologação) e clique em 'Criar nova aplicação'.
Posteriormente, acesse o menu API->Meus certificados. Escolha o ambiente desejado (Produção ou Homologação) e clique em 'Novo Certificado'. Será solicitado uma senha, que é a assinatura eletrônica (a mesma utilizada no aplicativo).
00020126880014br.gov.bcb.pix2566qrcodes-pix.gerencianet.com.br/v2/171760a7663e41c389e4cd310f3339e85204000053039865802BR5925Obter o nome da Chave Pix6003Pix6207050363049491
Técnicamente é o seguinte...
- Você cadastra o webhook para seu endpoint "exemplo.com/webhook"
- A GN vai enviar uma primeira requisição para este endpoint sem o certificado, e seu servidor deve RECUSAR
- Em seguida a GN vai enviar outra requisição, dessa vez com com certificado para handshake, mas vai servir apenas para confirmar o PIX gerado, vai enviar um POST com um nome de evento e a data_criacao
- Caso o cliente pagar o PIX, a GN vai enviar uma nova requisição com certificado para handshake para o endpoint mas dessa vez vão adicionar um "/pix" a mais na requisição, ou seja, vai enviar para "exemplo.com/webhook/pix". Você deve deixar este endpoint também disponível e vai receber um POST com os dados do PIX recebido.