Histórico de mensagens em dúvidas

EXIBINDO CONVERSAS RECENTES:

Canal: dúvidas
Avatar discord do usuario carlossulzer

carlossulzer

Ver Respostas

Tem algo realmente estranho ou estou deixando de fazer alguma configuração. Acontece que se eu setar sandbox=true e usar o certificado de homologação está dando este erro do print. Se eu setar sandbox=false, que seria para o ambiente de produção o token é gerado, porem ao tentar gerar o pagamento em cartão está dando não autorizado "Unauthorized". Já recriei o certificado, testei no flutter, testei no C# e não funciona.
imagem enviada na mensagem pelo usuario carlossulzer

Avatar discord do usuario carlossulzer

carlossulzer

Ver Respostas

Boa noite. Fiz conforme vc falou. E continuo recebendo "Unauthorized". Já estou ao ponto de desistir. Tudo que faço retorna este erro. Ambiente de homologação.

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

Não é possível atribuir um var_dump a uma variável, @tarcizio5821.

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

usei o var_dump($data) e deu esse erro:
Notice: Array to string conversion in linha 47.
imagem enviada na mensagem pelo usuario tarcizio5821

Avatar discord do usuario tarcizio5821

tarcizio5821

assim dá certo, simulado em outro arquivo.
imagem enviada na mensagem pelo usuario tarcizio5821

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

@tarcizio5821, se foi feito o json_decode o valor em $data será um array.
Sugiro debugar, colocar um var_dump($data); na linha 40 para visualizar o array completo.

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

- json_decode() expects parameter 1 to be string, array given on line 33.
- Invalid argument supplied for foreach() on line 35.
imagem enviada na mensagem pelo usuario tarcizio5821

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

me confundi, não é essa
imagem enviada na mensagem pelo usuario tarcizio5821

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

- json_decode() expects parameter 1 to be string, array given linha 39.
- Trying to get property 'pix' of non-object linha 40.
- Trying to get property 'txid' of non-object linha 40.

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 carlossulzer

carlossulzer

Entendi. Essa era realmente uma dúvida

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?