Histórico de mensagens sobre js em pix

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, <@!837319378772820018>!

Cada location é uma url de capacidade. As URLs de capacidade concedem acesso a informações para qualquer pessoa que tenha a URL.

Neste caso, no momento que o usuário pagador efetua a leitura de um QR Code dinâmico gerado pelo recebedor, esta URL será acessada pelo PSP pagador e seu conteúdo consiste em uma estrutura JWS. Este objeto JWS apresenta três fragmentos separados pelo caractere . (ponto). São eles: header, payload e signature. Segue um exemplo:

eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXUyJ9.eyJ0eElkIjoiNTJjNDMzNjEtY2FhMS00ZGRiLTkxNTItNzA4NDI2YTI1ZGIzIiwicmV2aXNhbyI6IjMiLCJjYWxlbmRhcmlvIjp7ImNyaWFjYW8iOiIyMDIwLTA5LTE1VDE5OjM5OjU0LjAxM1oiLCJhcHJlc2VudGFjYW8iOiIyMDIwLTA0LTAxVDE4OjAwOjAwWiIsImV4cGlyYWNhbyI6IjEyMDAifSwidmFsb3IiOnsib3JpZ2luYWwiOiI1MDAuMDAifSwiY2hhdmUiOiI3NDA3YzljOC1mNzhiLTExZWEtYWRjMS0wMjQyYWMxMjAwMDIiLCJzb2xpY2l0YWNhb1BhZ2Fkb3IiOiJJbmZvcm1hciBjYXJ0w6NvIGZpZGVsaWRhZGUiLCJpbmZvQWRpY2lvbmFpcyI6W3sibm9tZSI6InF1YW50aWRhZGUiLCJ2YWxvciI6IjIifV19.khlLEW4Q4W6zIYlacIaSHzwg_q9JrIkeinmvRDcUUD3120oXXew_xqSEAWsefY28g4MhUmK-RuaZgn1_rR22ZVM1pDbblw7Sk6dlHGxEc8PbMzMgEJPLdOZRumzMLx6YBYLAYsxT-HZp_vmBT713biN3jJf3V55z9RK6Xyo1CeWvemt81_O4kyGZ9lbp7p0VhmdJ9u6_EquEyP2n0uWy2ikbe7AFobkAdBRoF8gtp891WG5-gZmk4ZzATORNQOTrytQYMyprWV7o_prVjwT308RUo9Si-FRPTvYRGqyKo-voGoQVaZgCMUjc0jLr9WqYCRMyeCJZHTJmpaCFSNQnhw
Em termos de funcionalidade, o fragmento que interessa ao pagador é o "payload", que apresenta estrutura contendo detalhes da cobrança, conforme exemplo:
json
{
"txId": "fc9a4366ff3d4964b5dbc6c91a8722d3",
"revisao": "3",
"calendario": {
"criacao": "2020-09-15T19:39:54.013Z",
"apresentacao": "2020-04-01T18:00:00Z",
"expiracao": 3600
},
"status": "ATIVA",
"valor": {
"original": "500.00"
},
"chave": "7407c9c8-f78b-11ea-adc1-0242ac120002",
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
"infoAdicionais": [
{
"nome": "quantidade",
"valor": "2"
}
]
}

Avatar discord do usuario matheus_efi

matheus_efi

Tem exemplos também de como são as notificações, todas em JSON

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

É neste endpoint mesmo, você vai informar no body o webhook a ser cadastrado e o parâmetro :chave você substitui pela chave Pix da conta Gerencianet.
body em JSON:

json
{
"webhookUrl": "https://seu_webhook"
}

Avatar discord do usuario felipetkful

felipetkful

Ver Respostas

Galera, bom dia, alguem fazendo o BackEnd para receber o webhook pix no Aspnet? o Json recebido do body não está em formato que seja bem interpretado pelo JObject do .NET,tá vindo com o caractere "[]" , quando tratava o json das respostas normais da Gerencia Net que nao tinham esse caractere eu consegui pegar os valores normais

Avatar discord do usuario danielteodoro

danielteodoro

na vdd, uso apache para gerenciar o host da api que tenho lá, mais a API é em Nodejs com express

Avatar discord do usuario rubenskuhl

rubenskuhl

Ou será pq o request não é /json ?

Avatar discord do usuario msxvdp

msxvdp

Ver Respostas

Bom dia pessoal, alguém aqui tem experiência em criar um backend para conexão com a API da GN usando Next.Js, da Vercel? Sabem dizer se é simples colocar o certificado para que o backend seja aceito nas comunicações?

Avatar discord do usuario iluminat7551

iluminat7551

Ver Respostas

Warning: C:\node\CENTRAL 1.0\front\src\environments\environment.prod.ts is part of the TypeScript compilation but it's unused.
Add only entry points to the 'files' or 'include' properties in your tsconfig.

Warning: C:\node\CENTRAL 1.0\front\src\app\app.component.ts depends on 'jquery'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\node\CENTRAL 1.0\front\src\app\socket.service.ts depends on 'socket.io-client'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Avatar discord do usuario luizgerencianet

luizgerencianet

Ver Respostas

Bom dia <@!400344063846645760> !
Temos um exemplo da requisição de autenticação feita pelo Delphi!
Segue a Função

Delphi
///////////
Const
Body = '{"grant_type": "client_credentials"}';
var
sResponse : String;
HttpClient: TIdHTTP;
JsonToSend: TMemoryStream;
AccessToken : iSuperObject;
begin

HttpClient := TIdHTTP.Create( nil );
HttpClient.ConnectTimeout := 20000;
HttpClient.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

with TIdSSLIOHandlerSocketOpenSSL(HttpClient.IOHandler).SSLOptions do
begin
CertFile := //Caminho do Certificado do tipo .PEM
KeyFile := //Caminho da chave do Certificado do tipo .PEM
Mode := sslmUnassigned;
SSLVersions := [sslvTLSv1_2];
end;

with HttpClient do
begin
Request.CustomHeaders.Values['Content-Type'] := 'application/json; application/x-www-form-urlencoded;';
Request.ContentType := 'application/json';
Request.CharSet := 'utf-8';
Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)';
HandleRedirects := True;
HTTPOptions := [hoKeepOrigProtocol, hoInProcessAuth];
end;


HttpClient.Request.Username := //Seu ClientId;
HttpClient.Request.Password := //Seu ClientSecret
HttpClient.Request.BasicAuthentication := True;

JsonToSend := TMemoryStream.Create;
WriteStringToStream(JsonToSend, Body, IndyTextEncoding_UTF8);
JsonToSend.Position := 0;

sResponse := HttpClient.Post({A URL Produção/Homologação}+'/oauth/token',JsonToSend);
AccessToken := SO(sResponse);
ShowMessage(AccessToken.S['access_token']);
end;

Avatar discord do usuario guilherme_efi

guilherme_efi

Consumindo a rota GET/v2/loc/:id/qrcode e passando o id do loc como parâmetro (que no exemplo é 65), você terá o retorno:

json
{
"qrcode": "00020126001BR.GOV.BCB.PIX2566qrcodes-pix.ger...",
"imagemQrcode": "data:image/png;base64,iVBORw0KGgoAAQDS... "
}

Avatar discord do usuario paulohenrique5840

paulohenrique5840

boa noite alguem j sabe o porque deste erro : (node:5216) UnhandledPromiseRejectionWarning: Error: Request failed with status code 403
at createError (C:\WebPages\webmaster\trufa-back-front\back-end\node_modules\axios\lib\core\createError.js:16:15)
at settle (C:\WebPages\webmaster\trufa-back-front\back-end\node_modules\axios\lib\core\settle.js:17:12)
at IncomingMessage.handleStreamEnd (C:\WebPages\webmaster\trufa-back-front\back-end\node_modules\axios\lib\adapters\http.js:260:11)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (internal/streams/readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
(Use node --trace-warnings ... to show where the warning was created)
(node:5216) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:5216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Avatar discord do usuario .gabrielkenji

.gabrielkenji

{
"nome": "json_invalido",
"mensagem": "Valores ou tipos de campo inválidos",
"erros": [
{
"chave": "additionalProperties",
"caminho": ".query",
"mensagem": "não são permitidas propriedades adicionais"
}
]
}

Avatar discord do usuario matheus_efi

matheus_efi

Coloca Content-Type : application/json

Avatar discord do usuario matheus_efi

matheus_efi

O Body está com

json
{
"grant_type": "client_credentials"
}
?

Avatar discord do usuario .gabrielkenji

.gabrielkenji

Ver Respostas

E se eu não tiver o webhook, existe alguma outra forma que eu possa consultar? enviando JSON? algo assim?

Avatar discord do usuario sergiomsa

sergiomsa

Ver Respostas

Aproveitando. No envio do PIX pela api é retornado um json com o e2eId e o status EM_PROCESSAMENTO. No json da notificação não deveria vir o e2eId para que possa ser possível fazer a conciliação? Vem o endToEndId. Isto mesmo?

Avatar discord do usuario amaury_martin

amaury_martin

Ver Respostas

Obrigado pela resposta Rubens! O que você falou no caso se aplica a uma mesma transação Pix, correto? Eu queria também saber como esse comportamento se dá no contexto de várias transações diferentes. Estou integrando com a API Pix da Gerencianet utilizando as credenciais da conta PF que abri e estou fazendo testes utilizando o certificado de produção pra fazer testes devido a dificuldade de testar o retorno do webhook utilizando o de homologação. Estava devolvendo todas as transações PIX que havia pago no dia de hoje testando minha aplicação (várias transações de um centavo) e não consegui realizar uma das devoluções por causa desse limite. Recebi um 422 e um json com uma mensagem "Valor limite da devolução atingido". Contei 9 devoluções, portanto 9 centavos (até estranhei não ser um número redondo, 10 por exemplo) e queria confirmar se esse realmente é o limite. Quando a aplicação for para produção, com certeza usaremos as credenciais de uma conta PJ e é possível que, devido a regra de negócio, o volume de devoluções por dia seja maior que 9 (seriam várias transações Pix, onde cada transação teria apenas uma devolução do valor integral pago). Então já fica mais duas perguntas: há diferente entre esses limites de devolução pra conta PJ e PF? É possível negociar esses limites com a Gerencianet no caso da conta PJ?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Alterou também "sandbox" para false, no config.json?
Tente excluir a pasta vendor, e executar o comando composer install novamente