Histórico de mensagens sobre PIX em pix

EXIBINDO CONVERSAS RECENTES:

Texto: PIX
Canal: pix
Avatar discord do usuario peterfritz

peterfritz

Ver Respostas

O próximo passo seria usar o id da location para https://dev.efipay.com.br/docs/api-pix/payload-locations#gerar-qrcode-de-um-location>">gerar QRCode de um location, assim você receberá o Pix Copia e Cola / BRCode, um link de visualização e a imagem do QRCode através de uma data URI

Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

Boa tarde. Estou tentando fazer a integração via pix completa com PHP (gerar token, venda, gerar qrcode e notificação de status). Porém ate agora não consegui ter sucesso. Eu gerei o token, gerei a venda via pix que me retorna um location. Porém agora o próximo passo seria gerar o QR code visual para o cliente escanear ou o numero para copiar e colar para pagamento. Para gerar a venda estou fazendo uma requisição via POST para https://pix-h.api.efipay.com.br/v2/cob. Nela me retorna sucesso e um txid e o location. Como faria para prosseguir e gerar o qr code? Quando acesso o link do location, diz que "A cobrança não está mais com o status ATIVA"}" Mesmo eu gerando naquele mesmo segundo e indo consultar.

Avatar discord do usuario peterfritz

peterfritz

Algo assim funcionaria:

js
import axios from "axios";
import https from "https";

const subdomain = process.env.NODE_ENV === "production" ? "pix" : "pix-h";

const clientCreds = clientId + ":" + clientSecret;
const authorization = Basic ${Buffer.from(clientCreds).toString("base64")};

const certificate = Buffer.from(certificateBase64Encoded, "base64");

const httpsAgent = new https.Agent({
pfx: certificate,
passphrase: "",
});

const oAuthResponse = await axios.post(
https://${subdomain}.api.efipay.com.br/oauth/token,
{
grant_type: "client_credentials",
},
{
headers: {
Authorization: authorization,
"Content-Type": "application/json",
},
httpsAgent,
}
);

const token = oAuthResponse.data.access_token;

const efiApi = axios.create({
baseURL: https://${subdomain}.api.efipay.com.br,
headers: {
Authorization: Bearer ${token},
"Content-Type": "application/json",
},
httpsAgent,
});

await efiApi.put(
/v2/webhook/${process.env.PIX_KEY},
{
webhookUrl:
${process.env.WEBHOOK_BASE_URL}/api/webhook/efi?secret=${process.env.WEBHOOK_SECRET}&ignore=.replace(
"//api",
"/api"
),
},
{
headers: {
"x-skip-mtls-checking": "true",
},
}
);

Avatar discord do usuario blini_10032

blini_10032

a minha requisição de oauth tá assim:
const responseToken = await fetch(
"https://pix-h.api.efipay.com.br/oauth/token",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"x-skip-mtls-checking": "true",
},
body: JSON.stringify({ grant_type: "client_credentials" }),
}
);

Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

to mandando assim: curl_setopt_array($curl, array(
CURLOPT_URL => "https://pix-h.api.efipay.com.br/v2/cob", // 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 => $data,
CURLOPT_SSLCERT => $config["certificado"],
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $token",
"Content-Type: application/json"
),
));

Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

to mandando dados errados ou o escopo da requisição não esta correto rs estou enviando o token no cabeçalho de atutentificação dessa cobrança pix. Esta correto?

Agora o erro mudou para : "Erro interno do servidor"

Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Boa tarde! Tudo bem? Estou fazendo a integração com a API pix PHP e tudo certo ao gerar o token. Porém quando vou fazer a requisição para 'https://pix-h.api.efipay.com.br/v2/cob' recebo error : client invalid. Teria algum exemplo com curl?

Avatar discord do usuario jaimepremy

jaimepremy

Olá devs, consegui implementar o pix no localhost (asp.net) por completo, funciona bacana. Mas no servidor remoto a autenticação simplesmente não retorna nada. Nenhum erro, nada. Me dê uma luz fvr.

Avatar discord do usuario peterfritz

peterfritz

Ver Respostas

Fala @blini_10032, tem sim, uso serverless e edge para receber os callbacks, então pra mim também não foi possível usar mTLS. Mas a Efí suporta um cabeçado x-skip-mtls-checking na criação do webhook que, se tiver como valor true, irá pular a validação do mTLS.
https://dev.efipay.com.br/docs/api-pix/webhooks/#:~:text=Certbot%20por%20exemplo.-,Skip%2DmTLS,-Para%20hospedagem%20em>">Documentação do Skip-mTLS.

> Só lembre-se de verificar se o IP que envia a requisição https://sejaefi.com.br/central-de-ajuda/api/quais-enderecos-de-ip-gerencianet-utiliza#conteudo>">pertence à Efí e enviar um segredo conhecido apenas pelo seu servidor na URL quando criar o seu webhook como recomendado na documentação.

Avatar discord do usuario luxcorporation_15770

luxcorporation_15770

alguem ai pra fazer um extra ?:


preciso integrar o pix com o meu CRM

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mas a validação de se é mesmo o mtls.pix.ae acionando é mais fraca do que a possibilitada por um API Gateway.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, faz. Segue o texto do autor do pix.ae:

Pra quem tem dificuldades de implementar os webhooks por falta de suporte em hospedagem compartilhada para configurar mTLS, o Pix.ae agora oferece proxy de callbacks com mTLS.

Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:

Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix

Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/

Avatar discord do usuario blini_10032

blini_10032

Ver Respostas

@rubenskuhl p pix.ae faz isso?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não, mas você pode usar algum componente de SaaS que implemente mTLS com CA privada e aí acione a sua hospedagem.
API Gateway da AWS e pix.ae são duas opções; Oracle Cloud também dá para fazer mas não sei o nome do componente lá.
Notar que dá para fazer apenas essa parte nessas soluções, não precisa portar tudo pra AWS/OCI.

Avatar discord do usuario rubenskuhl

rubenskuhl

O pix.chaves.{chave}.webhook.notificacao.pagador precisa ser true.

Avatar discord do usuario rubenskuhl

rubenskuhl

{
"pix": {
"receberSemChave": true,
"chaves": {
"355e4568-e89b-1243-a456-006655440001": {
"recebimento": {
"txidObrigatorio": false,
"recusarTipoPessoa": "PF",
"qrCodeEstatico": {
"recusarTodos": false
},
"webhook": {
"notificacao": {
"tarifa": true,
"pagador": true
}
}
}
}
}
}
}

Avatar discord do usuario peterfritz

peterfritz

Ver Respostas

Oi, boa tarde. Vocês sabem se existe algum jeito de consultar o pagador de um QR Code ou BR Code que foi cadastrado sem informar um devedor?
Na secção de https://dev.efipay.com.br/docs/api-pix/webhooks#requisi%C3%A7%C3%A3o>">requisição (callback) da documentação de webhooks, vi que é possível que os dados do pagador sejam recebidos no callback através da propriedade gnExtras.pagador, porém o objeto gnExtras é opcional e, até então, só tenho recebido através de callbacks os seguintes dados:

json
{
"pix": [
{
"endToEndId": "...",
"txid": "...",
"chave": "...",
"valor": "...",
"horario": "..."
}
]
}
No extrato é possível visualizar pagador, documento e instituição, então imagino que há alguma forma de solicitar esses dados através da API.
Agradeço desde já e peço perdão pela mensagem longa.

Avatar discord do usuario alexandrerod50

alexandrerod50

ao executar o pixConfigWebhook.php para cadatrar o webhook me retornou isso: 400webhook_invalidoA autenticação de TLS mútuo não está configurada na URL informada.
Alguém sabe o que esta errado?

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia @alexandrerod50, temos sim, segue o exemplo:

server {
#
# ...
#
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate server_ssl.crt.pem;
ssl_certificate_key server_ssl.key.pem;
ssl_client_certificate /root/chain-pix-webhooks-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
#
# ...
#
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass /webhook;
}
}
#Desenvolvido pela Consultoria Técnica da Efí