Deu certo, o código pra gerar o token. Antes havia esquecido de substituir o link de homologação pelo de produção...
Token URL: https://api-pix.gerencianet.com.br/oauth/token
Termos mais procurados:
Termos mais procurados:
Deu certo, o código pra gerar o token. Antes havia esquecido de substituir o link de homologação pelo de produção...
Token URL: https://api-pix.gerencianet.com.br/oauth/token
https://dev.gerencianet.com.br/docs/api-pix#section-exemplos-de-uma-configura-o-de-servidor- tem alguns exemplos para diferentes webservers. Qual o usado no seu ambiente ?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api-pix-h.gerencianet.com.br/oauth/token');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
$pem=realpath("/etc/certs-gerencianet/olimppiuspix.crt.pem");
if(!$pem || !is_readable($pem)){
die("olimppiuspix.crt.pem is not readable! realpath: \"{$pem}\" - working dir: \"".getcwd()."\" effective user: ".print_r(posix_getpwuid(posix_geteuid()),true));
}
curl_setopt($ch, CURLOPT_SSLCERT, $pem);
$config = [
"certificado" => "/etc/certs-gerencianet/olimppiuspix.crt.pem",
"client_id" => $this->clientId,
"client_secret" => $this->clientSecret
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação ou produção
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo "
";";
echo $response; //print_r($response);
echo "
esse modelo então não é suficiente?
$config = [
"certificado" => "./certificado.pem",
"client_id" => "YOUR-CLIENT-ID",
"client_secret" => "YOUR-CLIENT-SECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação ou produção
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo "
";";
echo $response;
echo "
{
"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"
}
}
Olá <@!818197250840199198>. Bom dia!
Na SDK de PHP você encontra as funcionalidades para utilização do Marketplace e demais demais serviços da Gerencianet.
Obs: A Gerencianet disponibiliza cobranças Pix, mas até o momento no Marketplace é possível cobranças somente via boleto e cartão de crédito.
1 (✅ ) Autenticar na API
2 (❌) Cadastrar devedor -> Não há exemplo de como cadastrar o cliente final na SDK. Este cadastro do devedor deve ser realizado em um banco de dados em seu sistema. A partir deste cadastro, passar as informações para a emissão.
3 (✅) Criar transação de cobrança imediata
4 (✅) Gerar Qrcode dinâmico e código copia e cola de pagamento -> No ambiente Pix é possível. Então nesta compra que o cliente utilizou o Pix, você pode estruturar para que haja o repasse/envio de pix para o vendedor.
5 (✅) Monitorar o pagamento da cobrança -> (webhook: https://dev.gerencianet.com.br/docs/api-pix#section-webhook" class="link-msg">https://dev.gerencianet.com.br/docs/api-pix#section-webhook)
6 (✅) Setar transação de cobrança imediata como paga -> Com o monitoramento da cobrança, é possível setar os status das transações como paga automaticamente, e há opção também de "Marcar como Pago" manualmente uma cobrança via boleto. Em relação à cobrança Pix, você pode utilizar o PATCH /v2/cob para setar o status para "REMOVIDA_PELO_USUARIO_RECEBEDOR"
7 (✅) Enviar pix para o vendedor (O Vendedor poderá configurar se recebe de forma automática ou se faz saques esporádicos) em processo de autoriação. -> Com o Marketplace, cada vendedor deve possuir uma conta Gerencianet, então, você pode informar através da integração como deverá ser feita a divisão do valor recebido entre diferentes contas dos vendedores, de forma automática.
8 (✅) Criar transação de devolução de Pix para o devedor caso haja um desacordo comercial
Veja também em nossa documentação, para encontrar estes endpoints e demais detalhes: https://dev.gerencianet.com.br/docs/api-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);
}
Bom dia a todos! Quando eu consulto /v2/gn/config em api-pix-h eu recebo o seguinte:
{"pix":{"receberSemChave":true,"chaves":{}}}
As chaves que tenho então estão cadastradas apenas em prod?
devo gerar uma chave nova para homologação? Se eu atribuir um webhook a essa chave receberei as notificações?
Pessoal, vocês tem um "não antes de" para a quitação de cobrança da API-Pix em ambiente de homologação ?
Depois que gerar a cobrança, tem que chamar outro endpoint para passar a URL do seu webhook... Tem que fazer um PUT no endpoint https://api-pix-h.gerencianet.com.br/v2/webhook/ + a chave do recebedor.
Agora que eu vi.. nessa imagem, a url você ta passando a String $txid.. nesse caso você tem que fazer assim: "https://api-pix-h.gerencianet.com.br/v2/cob/". $txid
<@!814207030763847801> temos alguns exemplos de configuração mtls em nossa documentação, porém no spring boot ainda não temos. Mas a ideia vai ser a mesma, onde a Gerencianet irá fazer 2 requisições para o seu domínio(servidor). Para mais detalhes acesse nossa documentação https://dev.gerencianet.com.br/docs/api-pix#section-webhook
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:
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);
}
curl_setopt_array($curlWebHook, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/webhook/minhachaveaqui",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_SSLCERT => $config["certificate"],
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS => "{\r\n \"webhookUrl\": \"https://teamreapers.com.br/servers/painel/retorno_pix.php",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $accessToken"
),
));