Histórico de mensagens sobre js

EXIBINDO CONVERSAS RECENTES:

Texto: js
# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa tarde, não é necessário a utilização de senha caso você esteja convertendo de .p12 para .pem, basta utilizar o comando:

js
openssl pkcs12 -in certificado.p12 -out certificado.pem -nodes

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

São diferentes os retornos dependendo do endpoint consumido, se você se refere a criação da cobrança o retorno é:

json
{
"calendario": {
"criacao": "2020-09-09T20:15:00.358Z",
"expiracao": 3600
},
"txid": "7978c0c97ea847e78e8849634473c1f1",
"revisao": 0,
"loc": {
"id": 789,
"location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",
"tipoCob": "cob"
},
"location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",
"status": "ATIVA",
"devedor": {
"cnpj": "12345678000195",
"nome": "Empresa de Serviços SA"
},
"valor": {
"original": "567.89"
},
"chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",
"solicitacaoPagador": "Informar cartão fidelidade"
}
Já o retorno para gerar QRCode a partir do location, é retornado o copia e cola e a imagemQRCode em base 64:
json
{
"qrcode": "00020126880014BR.GOV.BCB.PIX2566qrcodes-pix.gerencianet.com.b...",
"imagemQrcode": "data:image/png;base64,iVBORw0KGgoAAAAOQAAADkCAYAAACIV4s..."
}

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, mas a chave vem no body JSON.

# pix
Avatar discord do usuario cleversonmenur

cleversonmenur

Ver Respostas

Olá, @Efí

Ainda na labuta do Webhook em ambiente PaaS. Fiz os seguintes passos e creio estar quase lá:

- Criei uma conta na Amazon para o projeto
- Cadastrei o cartão de crédito
- Provisionei o Amazon API Gateway
- Configurei um custom domain nele
- Configurei o domínio no meu Registrar
- Habilitei o custom domain no API Gateway
- Criei certificado e habilitei o HTTPS
- Baixei o cert webhook da Gerencianet
- Criei uma Trust Store PKCS12
- Coloquei a cadeia da GN lá
- Converti a TS para o formato PEM
- Provisionei um armazenamento Amazon S3
- Subi a TS.pem
- Finalizei a configuração do custom domain
- Ativei o mTLS neste domínio
- Criei uma rota de API para o meu server
- Associei a rota ao custom domain com mTLS

Fui configurando e testando a cada passo. Quase tudo funcionando. A única coisa que não consigo é fazer uma requisição client para testar o mTLS já que não tenho o cert client do webhook.

Então…

- Invoquei o serviço PUT /webhook/{chave} passando no body a url e recebi o seguinte body com o status 400:

{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ERR_TLS_CERT_ALTNAME_INVALID"
}

Supus ser algum erro no pem que usei para configurar o mTLS. E já experimentei o seguinte:

- Usei exatamente o CRT que baixei das docs da GN
- Fiz a conversão como citei acima (criando a TS)

Se vocês puderem fazer uma requisição mTLS com o certificado client correto para testar, a UTR é esta:

POST https://mtls.menur.app/vbeta1/establishments/mana/pix

O serviço está retornando 204 fixo para qualquer body json (não obrigatório).

Alguma luz? 🙏

# pix
Avatar discord do usuario cleversonmenur

cleversonmenur

Ver Respostas

Mostrando que dá erro HTTP 500 caso o grant_type seja submetido via content-type: application/x-www-form-urlencoded ao invés de application/json. Por isso a configuração OAuth2 não consegue fazer o Fetch Tokens.
imagem enviada na mensagem pelo usuario cleversonmenur

# pix
Avatar discord do usuario cleversonmenur

cleversonmenur

Exemplo da configuração do OAuth2 no Insomnia, que é igual ao Postman e outros clients compatíveis. Com isso deixa de ser necessário chamar o serviço de geração de token antes, e sempre que expirar. O client REST mesmo toma conta desse gerenciamento. Além do que, o Insomnia não tem a opção de rodar script que manipula as variáveis de ambiente como o Postman, que faz com que seja possível dar aquele "jeitinho" (no bom sentido) para esse tipo cenário. Vejo que o ideal seria usar o próprio padrão. É relativamente simples de resolver, aceitando não só o JSON como também o Form como Content-Type do serviço de geração do Access Token URL.
imagem enviada na mensagem pelo usuario cleversonmenur

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Boa tarde <@!689576312142430253>, temos um endpoint que retorna para você o copia e cola e a imagem Qrcode, o GET /v2/loc/:id/qrcode. Você vai informar o id do Loc que retornamos ao gerar uma cobrança e ao consumir você terá um retorno assim:

js
{
"qrcode": "00020126880014BR.GOV.BCB.PIX2566qrcodes-pix.gerencianet.com.b...",
"imagemQrcode": "data:image/png;base64,iVBORw0KGgoAAAAOQAAADkCAYAAACIV4s..."
}
Mais detalhes aqui https://dev.gerencianet.com.br/docs#section-gerar-qrcode-de-um-location

# sugestões
Avatar discord do usuario joelemanoel

joelemanoel

Ver Respostas

Eu reportei internamente para vocês e realmente ele ta enfrentando um problema real.
Como a GN faz automaticamente as verificações, acontece que está pegando o PORTE do CNPJ e não o Código e Natureza, baseado nisso está exigido Ato Constitutivo para os CNPJs MEI.

# pix
Avatar discord do usuario lucaspera4486

lucaspera4486

URL url = new URL ("https://api-pix.gerencianet.com.br/v2/webhook/" + CHAVE_PIX);
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer =" + authToken);
conn.setRequestProperty("x-skip-mtls-checking", "true");
conn.setSSLSocketFactory(sslsocketfactory);

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Me parece que você não está capturando o JSON que enviamos no response e sim o retorno do request com o status

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa tarde! Você alterou o id para o id que é retornado no loc?
Se sim, o response será algo nesta linha linha:

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

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Vou exemplificar aqui, um Pix recebido:

{"pix": [{"endToEndId": "E18236120202102041801s0314386DGX", "txid": "4d4e0d68aecf4a4f94474d3e2d5cba5e", "chave": "7441-a91e-4982-8c25-6105581318ae", "valor": "0.01", "horario": "2021-02-04T18:01:15.000Z"}]}
Devolução refente ao mesmo Pix:

{"pix": [{"endToEndId": "E18236120202102041801s0314386DGX", "txid": "4d4e0d68aecf4a4f94474d3e2d5cba5e", "chave": "7441-a91e-4982-8c25-6105581318ae", "valor": "0.01", "horario": "2021-02-04T18:01:15.000Z", "devolucoes": [{"id": "hsdjahjsuyturp", "rtrId": "D090893562021020418013f3993b68ca", "valor": "0.01", "horario": {"solicitacao": "2021-02-04T18:01:43.000Z", "liquidacao": "2021-02-04T18:01:44.000Z"}, "status": "DEVOLVIDO"}]}]}

# cartões
Avatar discord do usuario joao_efi

joao_efi

Abaixo um exemplo da resposta da API:

json
{
"code": 200,
"data": {
"charge_id": 288727896,
"total": 1800,
"status": "unpaid",
"created_at": "2021-01-20 08:57:00",
"notification_url": "http://suaURL",
"items": [object],
"history": [
{ "message": "Cobrança criada", "created_at": "2021-01-20 08:57:00" },
{
"message": "Pagamento via cartão de crédito aguardando confirmação",
"created_at": "2021-01-20 08:57:01"
},
{ "message": "Pagamento não confirmado", "created_at": "2021-01-20 08:57:04" }
],
"customer": [object],
"payment": [object]
}
}

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

<@!766803964736831508> O access_token junto com o tipo da autenticação, deverá ser informado no parâmetro authorization, no Header da requisição. Exemplo:

CURLOPT_HTTPHEADER => array(
authorization: Bearer ' . $access_token ,
'Content-Type: application/json'
),
E sim, o certificado deve ser enviado em toda requisição realizada

# pix
Avatar discord do usuario terremoth

terremoth

We are completely uploaded and fine
Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 500
< x-amzn-requestid: 015a6575-0e09-41d9-90cd-69ce1d4d744a
< content-length: 70
< x-amzn-remapped-content-length: 70
< x-amzn-remapped-connection: keep-alive
< x-request-id: 52f4e928-c658-40b0-9620-86b42943506c
< x-amz-apigw-id: aO0GlF5dIAMFX4Q=
< vary: Origin
< etag: W/"46-XAD/Fng+Qq6nuJUwSmDmoLFq8bc"
< x-amzn-remapped-date: Thu, 04 Feb 2021 17:49:55 GMT
< access-control-allow-credentials: true
< content-type: application/json; charset=utf-8
< date: Thu, 04 Feb 2021 17:49:55 GMT
<
Connection #0 to host api-pix.gerencianet.com.br left intact
=> "{"nome":"erro_interno_servidor","mensagem":"Erro interno do servidor"}"

# sugestões
Avatar discord do usuario drogaehobrian.

drogaehobrian.

Ver Respostas

Oi pessoal da GN! Desculpa tão tarde, mas tive a ideia agora e achei uma boa compartilhar aqui com vocês, eu poderia criar minha própria versão dessa solução mas acho que seria legal para todos é ter como transferir via PIX no internet banking do site da GN. Motivos que me levam a acreditar nisso é:
- GN é o único banco digital que eu vi até agora que tem internet banking, e eu uso muito! Odeio ficar trocando celular computador e a maior parte do tempo é no computador, gostaria de fazer transferencias PIX pelo computador! (:
- Amo o GN por não precisar instalar 10000 módulos de segurança que eu sinto que comem minha RAM loucamente.
- Gosto como extratos são MUITO melhor visualizados no computador e o Internet Banking do Gerencianet faz isso de forma excelente, ou seja, o internet banking se torna uma opção gigantesca para quem faz muitas transações (como comércios e PJs por exemplo)

# pix
Avatar discord do usuario Xandao

Xandao

Ver Respostas

Pessoal, a API pix de produção tem restrição de IP? Não lembro se mandei IP quando pedi o certificado de produção.. mas rodo o código no localhost e pega o token, faz tudo certinho.. quando rodo o mesmo código no servidor, recebo nulo em vez das respostas em json corretas

# pix
Avatar discord do usuario joelguimaraesupdatesistemas

joelguimaraesupdatesistemas

<@!781937354507943938> tive este mesmo problema teu só que uso a biblioteca WebRequest do C#


ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

var httpWeb = (HttpWebRequest)WebRequest.Create(Autenticacao._Host + "/v2/pix");

httpWeb.ClientCertificates.Add(Autenticacao.Servico.GetCertificado());
httpWeb.ContentType = "application/json";
httpWeb.Method = "POST";
httpWeb.Headers.Add("Authorization", "Bearer " + Autenticacao.Servico.GetToken());

# assinaturas
Avatar discord do usuario alancosta8466

alancosta8466

Ver Respostas

Bom dia! Estou fazendo testes aqui com a api sdk node.js seguindo a documentação. Mas a resposta está vindo "Unauthorized". Estou usando a client_id e client_secret em desenvolvimento e sandbox: true