Histórico de mensagens sobre js em pix

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: pix
Avatar discord do usuario felipoantonoff

felipoantonoff

Ver Respostas

Eu optei por usar a página de sucesso mesmo para exibir o QR Code e o Copia e Cola do Pix.
Assim já consigo mudar para Aguardando Pagamento no Status e salvo também no Histórico do Pedido.

Logo se o cliente sair da tela de Sucesso, pode ainda acessar no Detalhes do Pedido.
Faço desta forma com Boleto tb a alguns anos.

Já com outro Pagamento, adotei a ideia de verificar a cada X segundos tb por JS e depois mandar para o sucesso ou quando chegar no tempo limite de X minutos de espera.

Avatar discord do usuario matheus_efi

matheus_efi

Na requisição em python eu informo Content-Type: application/json, o authorization fica 'Bearer {access_token}'

Avatar discord do usuario joelemanoel

joelemanoel

"Content-Type: application/json"

Avatar discord do usuario ferdead2

ferdead2

será que é o header do "application/json" que tá a mais?

Avatar discord do usuario juizmill

juizmill

Ver Respostas

Estou tentando fazer os dois em uma unica URL, ai quero identificar se é boleto ou PIX e trabalhar com o Adapter para resolver o tratamento de dados, nas nao sei como é estes dados que chega do WebHook da GN se alguem tiver um exemplo de JSON do POST do WebHook ajudaria

Avatar discord do usuario juizmill

juizmill

Ver Respostas

OK, alguem tem o JSON do POST que a GN envia neste WebHook tanto para PIX quando para o Boleto?

Avatar discord do usuario leomp12x

leomp12x

Ver Respostas

js
pix.axios({
url: /v2/cob/${txid},
method: 'PUT',
data: pixCob
})
.then(({ data }) => {
const location = (data.loc && data.loc.location) || data.location
const pixCodeHost = 'https://gerarqrcodepix.com.br/api/v1'
const pixCodeParams = &location=${location} +
&nome=${encodeURIComponent(config.pix_receiver || params.domain)} +
&cidade=${encodeURIComponent(config.pix_city || params.domain)}
const qrCodeUrl = ${pixCodeHost}?saida=qr&${pixCodeParams}
const brCodeUrl = ${pixCodeHost}?saida=br&${pixCodeParams}

return axios.get(brCodeUrl).then(({ data }) => {
const { brcode } = data
// ...
})
})

Avatar discord do usuario drogaehobrian.

drogaehobrian.

<@!776935636400996382> tem algo parecido para js? O código inteiro está ótimo amigo, é só que não consegui fazer o checksum CRC16

Avatar discord do usuario drogaehobrian.

drogaehobrian.

Ver Respostas

Estou utilizando Node.js

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Só passando aqui a contribuição da <@!513728938414047232> da falha : The SSL connection could not be established. A solução encontrada foi passar o certificado no HttpClient através de um handler:

X509Certificate2 uidCert = new X509Certificate2(@".\certificado.p12");

var handler = new HttpClientHandler();
handler.ClientCertificates.Add(uidCert);

var client = new HttpClient(handler);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

Avatar discord do usuario amunhoz

amunhoz

se tiver um sdk em nodejs já pronto, acho que facilitaria muito.

Avatar discord do usuario amunhoz

amunhoz

Estou fazendo em NODEJS, tem algum exemplo ou sdk atualizado para o PIX?

Avatar discord do usuario mmhospedagem

mmhospedagem

Array
(
[calendario] => Array
(
[criacao] => 2020-12-13T04:01:01.000Z
[expiracao] => 3600
)

[txid] => PIX5B4T2KW7M8QXFJSV0APUD7E
[revisao] => 0
[loc] => Array
(
[id] => 72
[location] => qrcodes-pix.gerencianet.com.br/v2/e05e58d660f44e14bc652819c385f4c9
[tipoCob] => cob
[criacao] => 2020-12-13T04:01:01.000Z
)

[location] => qrcodes-pix.gerencianet.com.br/v2/e05e58d660f44e14bc652819c385f4c9
[status] => CONCLUIDA
[devedor] => Array
(
[cpf] => 04698640369
[nome] => Maik Venancio de Oliveira
)

[valor] => Array
(
[original] => 0.01
)

[chave] => 382ce08f-7200-4997-9616-613cade4f7e6
[solicitacaoPagador] => FATURA_2
[pix] => Array
(
[0] => Array
(
[endToEndId] => E18236120202012130408s0636219IRW
[txid] => PIX5B4T2KW7M8QXFJSV0APUD7E
[valor] => 0.01
[horario] => 2020-12-13T04:08:37.000Z
)

)

)

Avatar discord do usuario rubenskuhl

rubenskuhl

Tem o JSON com o valor para devolver ?

Avatar discord do usuario felipoantonoff

felipoantonoff

Ver Respostas

Pessoal outra dúvida, para emitir o Pix/Cobrança temos o calendario, tentei passar assim:

php
[calendario] => Array
(
[criacao] => 2020-12-12T13:03:58Z
[expiracao] => 86400
)
Com a data de criação, porém da o erro:
{"nome":"json_invalido","mensagem":"Valores ou tipos de campo inválidos","erros":[{"chave":"additionalProperties","caminho":".body.calendario","mensagem":"não são permitidas propriedades adicionais"}]}

Está errado o padrão usado na data de criação ou não da para informar?
Sem ela pega normal, queria por só, pois ao criar sem ela, fica com horário errado na data de criacao
E uso ela para filtras as cobranças recentes

Avatar discord do usuario felipoantonoff

felipoantonoff

Usei o Curl da Lib PHP, com pequena adição de logs, segue o Curl usado:

php
$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => $pix_url_cob,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 8,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_SSLCERT => $arq_certificado,
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS => $body,
CURLOPT_HTTPHEADER => [
"authorization: $tokenType $accessToken",
"Content-Type: application/json",
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);
if ($err) {
$this->log->write('emitePix() - Error Curl' . print_r($err, true));
return false;
}

$this->log->write('emitePix() - Error Curl' . print_r($err, true));

$this->log->write('emitePix() - Response ' . print_r($response, true));"

Curioso, que parece ocorrer só nesta chamada, a autorização não ocorre isso.
Uso o PHP 7.2 no servidor e com HTTPS.

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

<@!374888688515022850> verifiquei aqui e o campo recebedor do arquivo config.json da sdk php da GN só vai no qr code, mesmo. pode colocar "Pix" ali, se preferir, que a cobrança ainda é criada e o QR é montado normalmente

Avatar discord do usuario anoni_mato

anoni_mato

vou verificar o uso que GN faz desses valores vindos do config.json e já te falo

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

acho que a informação do config.json é utilizada em outros momentos (inclusive pra registrar o campo recebedor no payload). só precisa mudar a montagem do qr code mesmo. EDIT: o campo só vai no QR mesmo.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

É o que dá para colocar no config.json...