bom dia. recebi um email dizendo que o token da api de cobrança foi alterado. mas quando eu vou na API pra ver o client_id e client_secret eles parecem os mesmos. Este token que foi alterado é de outro lugar no site?
Termos mais procurados:
Termos mais procurados:
bom dia. recebi um email dizendo que o token da api de cobrança foi alterado. mas quando eu vou na API pra ver o client_id e client_secret eles parecem os mesmos. Este token que foi alterado é de outro lugar no site?
Perfeito. A integração com cartão funciona da mesma forma que o boleto. Você precisa do client_id e client_secret. Você pode criar uma nova aplicação em sua conta ou utilizar uma ja existente. Fica a seu critério. Em seguida, você deve entrar em contato com o suporte do IXC que eles vão auxiliar você no restante da integração.
Para criar a aplicação, você pode seguir esse tutorial.
Verifique também se você ja tem o Ramo de atividade cadastrado em sua conta.
os valores do client ID, Client Secrect são de homologação.
Tanto o certificado quanto o par Client ID e Client Secret são diferentes à depender do ambiente, o parâmetro sandbox nas credenciais diz à qual ambiente você vai tentar fazer requisição.
Com sandbox = true você fará requisição para homologação, portanto suas credenciais (Client ID, Client Secrect e certificado) devem ser de homologação.
É uma conta corporative e utilizamos o CNPJ para receber pagamentos, fois por essa conta que foi gerados as credenciais como "client_id" e "client_secret"
@.ilselangnar a chave Pix precisa estar registrada na mesma conta do client_id e client_secret
Segue um exemplo mais detalhado, onde é feito a autenticação e consumo do endpoint para criar um boleto.
";";
var_dump($returnAuth);
echo "
";";
var_dump($responseBillet);
echo "
sim estou usando cURL.
//Desenvolvido pela Consultoria Técnica da Efí
$config = [
"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://cobrancas-h.api.efipay.com.br/v1/authorize',
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_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo "";
";
echo $response;
echo "
?>
com as devidas alterações no client_id e client_secret.
Coloquei assim mas só funciona no localhost a confirmação de PIX (http://localhost:8000/cob/a7689c1ff5b64eeca8695e2e58c30007), no site da vercel da página não encontrada.
Já coloquei as variáveis no site e estou usando o certificado p12, o pem da erro até no localhost.
Teria que colocar algum comando no arquivo next.config.js ou vercel.json?
// Rota para consultar cobrança por txid
router.get('/cob/:txid', async (req, res) => {
const txid = req.params.txid;
try {
const reqGN = await GNRequest({
clientID: process.env.GN_CLIENT_ID,
clientSecret: process.env.GN_CLIENT_SECRET
});
// Consultar a cobrança usando o txid
const response = await reqGN.get(https://pix.api.efipay.com.br/v2/cob/${txid});
// Verificar se há um objeto PIX na resposta
if (response.status === 200 && response.data.pix) {
// Enviar o código de ativação junto com a resposta
return res.status(200).json({ message: 'PIX confirmado com sucesso.' });
} else {
// O PIX não foi pago ou não encontrado
return res.status(400).json({ error: 'PIX não encontrado ou não foi pago.' });
}
} catch (error) {
console.error('Erro ao consultar a cobrança:', error.message);
return res.status(500).json({ error: 'Erro ao consultar a cobrança.' });
}
});
Oi, pra confirmar se o pix foi pago seria algo assim? (não sei muito sobre isso, to aprendendo e usei o GPT pra criar o código.)
app.post('/webhook(/pix)?', async (req, res) => {
try {
// Consultar a cobrança usando o txid
const response = await axios.get(/v2/cob/:txid, {
headers: {
Authorization: 'Bearer' + process.env.GN_CLIENT_ID // Substitua pelo token de autorização correto
}
});
// Verificar o status da cobrança na resposta
if (response.status === 200 && response.data.status === 'CONCLUIDA') {
// Enviar o código de ativação para o Supabase
const { data: insertedData, error } = await supabaseClient
.from('dominios_permitidos')
.insert([{ code: generatedCode }]); // Acesse o código gerado na rota '/api/key'
// Enviar o código de ativação junto com a resposta
return res.status(200).json({ message: 'Webhook recebido com sucesso.', code: generatedCode });
} else {
// Se a cobrança não estiver concluída, retorne uma mensagem de erro
return res.status(400).json({ error: 'Cobrança não concluída.' });
}
} catch (error) {
console.error('Erro ao consultar a cobrança:', error.message);
return res.status(500).json({ error: 'Erro ao consultar a cobrança.' });
}
});
hola buenas tardes, soy nuevo en este tema EFI. Me logueé en https://app.sejaefi.com.br/home y estoy buscando un lugar en donde crear un código PIX o QR para que un cliente pueda utilizarlo. Actualmente integré la aplicación usando mercadopago pero quiero cambiarla a algo más intuitivo.
Ya instalé el SDK y seguramente voy a necesitar crear las keys, como muestra el ejemplo de EFI?
Me refiero a
{
"client_id": "Client_Id",
"client_secret": "Client_Secret",
"certificate": "./certs/nome_certificado.p12",
"sandbox": true,
"timeout": 30
} pero no entiendo bien los tutorials. Existe algún URL con el "paso a paso" para integrar una aplicación para que pueda generar el QR o el link correspondiente
Olá. Como usar as chaves CLIENT_ID e CLIENT_SECRET_ID e o certificado .p12 para gerar um pagamento em PIX?
Tenho credenciais configuradas e certificado gerado e salvo na pasta do projeto
Tenho uma biblioteca na qual encapsulei o código relacionado a pagamento (Que interage com a EfiPay via sdk-java-apis-efi na versão 1.0.3)
Criei uma classe de teste de integração que faz todo um fluxo de pagamento e funciona normal
Porém quando executo um fluxo real no meu micro serviço tomo esse java.net.SocketException: Unexpected end of file from server
Já depurei o objeto efiPay e em ambos os cenários vejo as credenciais (client_id e client_secret) e caminho do certificado atribuídos corretamente na configuração
Não há diferença aparente entre o cenário que está funcionando e o que gera essa exceção a não ser o projeto (Tentei até copiar o arquivo .p12 mantendo no mesmo path em ambos os repositórios mas sem resultado)
Agradeço se alguém conseguir dar uma luz
Já alguns dias enfrentando esse problema sem êxito
tudo joia Guilher e com você?
Eu verifiquei e as credenciais estão apontando para de produção e esse retorno vem da requisição de postback de vocês para minha aplicação, existe a possibilidade de o notification que vem de vocês não existe mais na plataforma de vocês e por isso acontece?
Boa tarde pessoal, uma duvida báscia, a "virada de chave" de homologação para Produção precisaria de algo a mais além da alteração da url(retirando o .."-h" de homologação ) e alterando o client id e client secret ?
"access_token_url": "https://pix-h.api.efipay.com.br/oauth/token",
"credentials": {
"grant_type": "client_credentials",
"client_id": "12123123",
"client_secret": "123123123",
"scope": "read_write"
},
Bom dia!
Estou com dificuldades de gerar boleto com PHP Curl. Sempre retorna: Unauthorized.
Utilizei credencias de Homologação.
Estou utilizando esse modelo:
$config = [
"client_id" => "Client_Id_....",
"client_secret" => "Client_Secret_...."
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/charge/one-step',
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 =>'{
"items": [{
"name": "Product 1",
"value": 500,
"amount": 1
}],
"shippings": [{
"name": "Default Shipping Cost",
"value": 100
}],
"payment": {
"banking_billet": {
"expire_at": "2024-04-16",
"customer": {
"name": "Gorbadoc Oldbuck",
"email": "[email protected]",
"cpf": "10617184682",
"birth": "1977-01-15",
"phone_number": "62986070247"
}
}
}
}',
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Bom dia, estou trabalhando em um sistema que utiliza a API Pix, porem a conta que esta sendo utilizada pra receber os pagamentos pix precisa ser alterada para uma outra conta, gostaria de saber o que preciso alterar tanto no codigo, seria somente o client_id, client_secret, chave pix e o certificado p12?
Ola bom dia, estou tentando gerar os boletos e estou tomando essa exception:
"sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
Obs: até o mês passado consegui gerar normal apenas com client_id e client_secret
Boa tarde @lidiamariano ! Pra essa rota https://pix.api.efipay.com.br/ você deve usar Client_id, Client_Secret e certificado de produção. Se for utilizar as credenciais e certificado de homologação, você deve utilizar a rota https://pix-h.api.efipay.com.br