Histórico de mensagens sobre dados em dúvidas

EXIBINDO CONVERSAS RECENTES:

Texto: dados
Canal: dúvidas
Avatar discord do usuario enriquerene

enriquerene

Ver Respostas

outra questão sobre o mesmo método createOneStepLink seriam quais os dados que devo passar obrigatoriamente? No exemplo de postman tem metadata e outras properiedades extras que nao aparecem na docs. Mas do jeito que está a docs a requisição aparece no dashboard com erro

Avatar discord do usuario welitonxd

welitonxd

Olá, Criei um link de pagamento via API com o metodo 'ALL' (boleto, cartao), creio que se o cliente estivesse escolhido cartão não teria problema pois o pagamento seria ali mesmo na tela, o problema que vi é se ele escolher boleto,

Neste caso ele preenche os dados para gerar um boleto. preenche o email e pronto, ele recebe o boleto por email. neste caso o link de pagamento não redireciona para metodo escolhido, fica sem conteudo apenas o template header e footer da Efi aparece. até aí tudo bem o cliente deveria está de posse do boleto. mas veio o problema de o email dele ser um destes complicados que existe aí no mercado como o email da LocaWeb ( a maioria [ ou 100%] dos meus clientes que tem Locaweb não recebe os boletos da Efy que são emitidos via APi/cron mensalmente).

Neste caso em específico que o cliente escolheu boleto e não recebeu ou nao chegou a pagar, saiu da tela e só tem o link de pagamento em posse. Só que ao acessar o link de pagamento ele não redireciona para o método escolhido (boleto no caso) e também não recebeu o boleto no email nem spam etc. como proceder? terei que recriar um link de pagamento novo? não dá apenas para que o link de pagamento redirecionasse para o metodo escolhido boleto ? no caso de cobrança paga também o link de pagamento não informa se foi paga, tenho estes dados da notificação pelo webhook, mas o cliente gostaria de comprovar que foi pago,

Na notificação de escolha de boleto no link da api só muda o status de link para waiting e não traz o link do boleto sendo o mesmo charge_id...

exemplo do link de pagamentohttps://pagamento.sejaefi.com.br/139adec9-da76-44fc-91c7-d1a3987a35e3

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Via API você nem precisa fazer o cadastro... você já manda os dados quando cria a cobrança.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Cartão de crédito tem também:

Simulação em Ambiente de Homologação
A simulação de cobranças de cartão em ambiente de Homologação funciona com base na análise imediata de acordo com o último dígito do número do cartão de crédito utilizado:

Cartão com final 1 retorna: "reason":"Dados do cartão inválidos."
Cartão com final 2 retorna: "reason":"Transação não autorizada por motivos de segurança."
Cartão com final 3 retorna: "reason":"Transação não autorizada, tente novamente mais tarde."
Demais finais têm transação aprovada.

Fonte: https://dev.efipay.com.br/docs/api-cobrancas/cartao

Avatar discord do usuario tarcizio5821

tarcizio5821

Bom dia.
Gostaria saber se o retorno do webhook é sempre o padrão quando um pix é pago:
"pix":[
{"endToEndId":"EEEEEEEEEEEEEEEEEEEEEEEEEEE","txid":"444444444444444444444444444444444","chave":"00000000-0000000-00008-000-0000000","valor":"0.01","horario":"2024-03-26T20:51:56.000Z"}

No retorno acima, temos:
endToEndId:
txid:
chave:
valor:
horario:

Tem alguma coisa que eu possa fazer para que a entrega contenha mais dados?
Eu digo mais dados que foram passados na criação da cobrança, tipo "infoAdicionais"?

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @marcelinho3290, apaguei sua mensagem por contar dados sensíveis.

Vou abrir um # atendimento para você e prosseguimos por lá.

Avatar discord do usuario tarcizio5821

tarcizio5821

@guilherme_efi e @igor_efi Consegui pegar o txid e criar o arquivo txt.
Não ficou muito elegante mas foi o que funcionou, e funciona legal.
Segue a solução para quem um dia precisar:
/////////////////4
$n = json_encode($dados);
$d1 = '['.$n.']';
$d2 = json_decode((string) $d1);
$txid = '';
foreach($d2 as $item) {
$txid .= $item->pix[0]->txid;
}
//grava o arquivo txt vazio
$fp = fopen('./txts/'.$txid.'.txt','wb');
fwrite($fp,'');
fclose($fp);
/////////////////4
Obrigado a todos.
imagem enviada na mensagem pelo usuario tarcizio5821

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Apaguei sua mensagem anterior por conter alguns dados sensíveis, como sua chave Pix.

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

@guilherme_efi Estou achando que preciso colocar o "$dados" dentro de colchetes [], porque o webhook está entregando sem esses colchetes, os dados estão vindo dentro de chaves. Vou fazer isso e volto já.

Avatar discord do usuario guilherme_efi

guilherme_efi

Na imagem que mandou anteriormente, faça da seguinte forma:

php
$data = json_decode($dados);
var_dump($data);
exit();
coloquei um exit() no final para interronper a execução dos códigos seguintes. Depois ele deve ser removido.
imagem enviada na mensagem pelo usuario guilherme_efi

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

@tarcizio5821, na parte que mencionou que deu certo a captura do txid, quando coloca no arquivo de "index.php" dentro da função "salvar($dados)" do webhook, quais erros são apresentados?

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

Bom dia Igor.
Não consegui pegar o txid, tentei de várias formas. Como disse anteriormente, não tenho conhecimentos em array e por esse motivo, tentei das seguintes maneiras:
//////////////////////
$json = '[
{
"pix":[
{"endToEndId":"EEEEEEEEEEEEEEEEEEEEEEEEEEE","txid":"444444444444444444444444444444444","chave":"00000000-0000000-00008-000-0000000","valor":"0.01","horario":"2024-03-26T20:51:56.000Z"}
]}

]';

$data = json_decode($json); // aqui seria o retorno do "$dados"
foreach($data as $item) {
echo $item->pix[0]->txid;
}
//////////////////////
Essa deu certo, mas quando coloco no arquivo de "index.php" dentro da função "salvar($dados)" do webhook, dá erros.

Tentei também todas alternativas abaixo e sem sucesso:
//////////////////////
//$data = json_decode($dados);
//$dd = $data->pix->txid;
//$conteudo = json_encode($dados).' ---- '.json_encode($dados['pix']['txid']).' ----- '.$dados['pix']['txid'].' ---- '.$dados->pix[0]->txid;
//$conteudo = json_encode($dados->pix[0]->txid).' ----- '.$dd.' ----- '.json_encode($dd).' ---- '.json_encode($dd->pix[0]->txid);
//////////////////////

Se puder me ajudar fico muito grato.

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Não, os dados do cartão não podem ser trafegados na rede, é por este motivo que a geração do payment_token precisa ser realizado no front end e você trafegar somente o payment_token para o seu backend.
Você pode trafegar as demais informações do cliente, mas as informações do cartão de credito não

Avatar discord do usuario carlossulzer

carlossulzer

Ver Respostas

Então o ideal seria gerar o token no app/front enviar para back-end juntamente com os dados do cartão e gerar a cobrança, seria isso?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

$dados->pix[0] é retornado alguma informação?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @tarcizio5821! Ja tentou: $dados->pix[0]->txid; ?

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

Como faço para pegar somente o txid da resposta do webhook no arquivo index.php?
Preciso gravar somente o txid antes de gravar no json.
Tentei "$txid = $dados.pix[0].txid;" mas não consegui porque não entendo de array.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Só as instituições tranmissoras/receptoras de dados no OpenFinance podem fazer isso. Segue lista:
https://openfinancebrasil.org.br/quem-participa/?marca=&modalidade=DADOS

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia. Apagamos parte da sua mensagem por conter dados sensíveis.
Iniciamos um chat para pegarmos mais detalhes com você.

Avatar discord do usuario gilmarcarvalhoti

gilmarcarvalhoti

Ver Respostas

OK, compreendido!

O número do carnê é igual a= carnet_id
O número da cobrança ou boleto da parcela do carnê é igual a= charge_id

Acessando manualmente os boletos e carnês gerados manualmente dentro do próprio sistema da conta EFí, eu consigo localizar o "número do carnê" e o "número da cobrança". Com esses dados seria possível enviar a requisição utilizando o custom_id para personalizar e associar uma transação Efí a um "número do carnê" ou "número da cobrança"? Ou até mesmo utilizando o "detailCarnet.php" ou o "detailBillet.php" para busca-los já que possuímos o "número do carnê= carnet_id" e o "número da cobrança= charge_id" que foram gerados automaticamente ao gerar os boletos e carnês manualmente dentro do próprio sistema da conta EFí?