Histórico de mensagens sobre js em pix

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: pix
Avatar discord do usuario wesleykovalski

wesleykovalski

Ver Respostas

É que depois de fechar o curl eu faço isso:

$response = curl_exec($curl);
curl_close($curl);

// RESPONSE EM ARRAY
$responseArray = json_decode($response, true);

// RETORNA O ACCESS TOKEN
return $responseArray['access_token'] ?? '';

Avatar discord do usuario wesleykovalski

wesleykovalski

Segue o código:

// ENDPOINT COMPLETO
$endpoint = $this->baseUrl . '/oauth/token';

// HEADERS
$headers = [
'Content-type: application/json',
'x-skip-mtls-checking: true'
];

// CORPO DA REQUISIÇÃO
$request = [
'grant_type' => 'client_credentials',
'webhookUrl' => 'https://www.dominio.com.br/endpointdowebhook'
];


// CONFIGURAÇÃO DO CURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $endpoint,
CURLOPT_USERPWD => $this->clientId . ':' . $this->clientSecret,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($request),
CURLOPT_SSLCERT => $this->certificate,
CURLOPT_SSLCERTPASSWD => '',
CURLOPT_HTTPHEADER => $headers
]);

Avatar discord do usuario anoni_mato

anoni_mato

exatamente PHP ou exatamente o que você fez? pq a mensagem de erro diz que o json enviado é inválido ou (mais provavelmente) ausente

Avatar discord do usuario anoni_mato

anoni_mato

a me basear pela formatação da msg de erro acima, parece que vc está usando PHP. então vc deve enviar no corpo do request algo como json_encode(["webhookUrl"=>"suaurl"]);

Avatar discord do usuario wesleykovalski

wesleykovalski

Ver Respostas

Alguém teve esse erro de retorno:

array(3) {
["nome"]=>
string(13) "json_invalido"
["mensagem"]=>
string(36) "Valores ou tipos de campo inválidos"
["erros"]=>
array(1) {
[0]=>
array(3) {
["chave"]=>
string(8) "required"
["caminho"]=>
string(0) ""
["mensagem"]=>
string(40) "deve ter a propriedade obrigatória body"
}
}
}

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

js
const express = require("express");
const fs = require("fs");
const https = require("https");
const bodyParser = require("body-parser");
var logger = require('morgan');

const httpsOptions = {
cert: fs.readFileSync(""), // Certificado fullchain do SSL do dominio
key: fs.readFileSync("/"), // Chave privada do SSL do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet. Baixe aqui: https://pix.gerencianet.com.br/webhooks/chain-pix-prod.crt
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Mantenha como false para que os demais endpoints da API não rejeitem requisições sem MTLS
};

const app = express();
const httpsServer = https.createServer(httpsOptions, app);
const PORT = 443;

app.use(logger('dev')); // Comente essa linha caso não queira que seja exibido o log do servidor no seu console
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// Endpoint para configuração do webhook, você precisa cadastrar https://SEUDOMINIO.com/webhook
app.post("/webhook", (request, response) => {
// Verifica se a requisição que chegou nesse endpoint foi autorizada
if (request.socket.authorized) {
response.status(200).end();
} else {
response.status(401).end();
}
});

// Endpoind para recepção do webhook tratando o /pix
app.post("/webhook/pix", (request, response) => {
if (request.socket.authorized){
//Seu código tratando a callback
/ EXEMPLO:
var body = request.body;
filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
response.status(200).end();
}
})
/
response.status(200).end();
}else{
response.status(401).end();
}
});

httpsServer.listen(PORT, () =>
console.log(Express server currently running on port ${PORT})
);

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, <@!756521010387484702>. Como vai?
O json que está passando está correto. Mas como você está enviando na requisição? Está utilizando nossa SDK de Node?

Avatar discord do usuario perrot.

perrot.

Ver Respostas

Json que envio:
let body = {
'valor': dados.valor,
'pagador': {
'chave': Config.chavePix,
'infoPagador': dados.infoPagador
},
'favorecido': {
'chave': dados.chavePixDestino
}
}

Avatar discord do usuario perrot.

perrot.

Bom dia! Estou com problemas ao usar o pix.send. Retorna o seguinte erro: {
"nome": "json_invalido",
"mensagem": "Valores ou tipos de campo inválidos",
"erros": [
{
"chave": "required",
"caminho": "",
"mensagem": "deve ter a propriedade obrigatória body"
}
]
}

Avatar discord do usuario inbox5372

inbox5372

Ver Respostas

Bom dia. Tudo bem com vocês?
Estou buscando uma solução alternativa para o mTLS de um backend hospedado no Heroku.
Uso o AdonisJS.
Um prefixo na webhookUrl => https://mtls.pix.ae/cardapioo-api.herokuapp.com/webhookpix
Mas não sei qual o fluxo nesse cenário. Eu imaginava que fosse assim:
1- O GN envia o primeiro request para a webhookUrl cadastrado pelo Postman, retorna com 403;
2- Faz um novo request em https://mtls.pix.ae/cardapioo-api.herokuapp.com/webhookpix junto com o certificado;
3- Ao bater no webhookUrl com o prefixo mtps.pix.ae é direcionado para a url respondida pelo meu backend;
4- Lá encontra a rota https://cardapioo-api.herokuapp.com/webhookpix POST já pronta;
5- Eu apresento ao GN a minha parte do certificado e pronto.

Mas o que acontece na verdade é => "nome": "webhook_invalido", "mensagem": "A requisição na URL informada falhou com o erro: HPE_INVALID_CONSTANT"

Alguém pode me ajudar por favor?

Avatar discord do usuario joao_efi

joao_efi

Oi <@!573337312436682752> tudo bem? 😄
Infelizmente, no momento, ainda não temos um exemplo utilizando Laravel!
Na nossa documentação você encontra mais detalhes sobre o funcionamento da nossa API: https://dev.gerencianet.com.br/docs
Temos também no nosso github, uma sdk em php que pode te ajudar no desenvolvimento: https://github.com/gerencianet/gn-api-sdk-php
No json que contém as credenciais você informa apenas o caminho do certificado!
Vale lembrar também, que em PHP deve-se utilizar o certificado em formado .pem! Os passos para converter seu certificado, você encontra no link: https://dev.gerencianet.com.br/docs/api-pix-autenticacao-e-seguranca#section-convers-o-de-certificado-p12-para-o-formato-pem

Avatar discord do usuario gabrielmoraesp

gabrielmoraesp

e não em json como está no exemplo

Avatar discord do usuario smookeydev.cb

smookeydev.cb

Ver Respostas

Boa tarde, eu estou recebendo a seguinte mensagem de erro quando solicito estorno de um pix, alguem consegue me ajudar?

{'nome': 'erro_interno_servidor', 'mensagem': 'Erro interno do servidor'}

Forma que estou solicitando:

def refund_order(self, endToEndId, id, value):
response = requests.put(f'{self.url[1]}/v2/pix/{endToEndId}/devolucao/{id}', data={'valor': f'{value}'}, headers={"Authorization": f"Bearer {self.get_token()}","Content-Type": "application/json"}, cert=self.certificate)
return response.json()

Avatar discord do usuario spontoni

spontoni

fiz em JS

Avatar discord do usuario brunolimasp

brunolimasp

return (json.loads(qrcode.content)['qrcode'])

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Utilizando esse endpoint, você tem como retorno:

json
{
"qrcode": "00020126880014BR.GOV.BCB.PIX2566qrcodes-pix.gerencianet.com.b...",
"imagemQrcode": "data:image/png;base64,iVBORw0KGgoAAAAOQAAADkCAYAAACIV4s..."
}

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, <@!804533209542950932>. Bom dia!
Me passe algumas informações... Você está com qual versão do PHP?
Para utilizar o exemplo do Pix, você precisa incluir seu certificado em .pem dentro do diretório, /pix/certs. Definir o nome deste seu certificado e ambiente (prod/homolog) no arquivo config.json. E chave pix no body da requisição no arquivo pix/emitir_pix.php