Histórico de mensagens sobre js

EXIBINDO CONVERSAS RECENTES:

Texto: js
# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mas o jose só se usa no retorno do payload. Normalmente tudo só json.

# pix
Avatar discord do usuario gil.brandao0067

gil.brandao0067

Ver Respostas

Boa noite consultores, sei que existe documentação para o caso, mas nesse momento estou precisando abreviar o sofrimento da consulta, por isso estou aqui.
Sabemos que nesse processo de implantação entre Node.js e Delphi que estou inserido, é natural que o cansaço fique ali do seu lado. Apesar da semelhança do conceito e do código entre as linguagens, vez por outra me vejo sem respostas para perguntas bobas.
Então vamos lá...
Utilizando o SDK Delphi como base, já estou gerando PIX de forma rápida e automática na tela, selecionando produtos e clientes que estão no banco de dados e tudo mais. - A questão agora é o retorno da cobrança pix, o status de cobrança... "REALIZADO", "EM_PROCESSAMENTO", "NAO_REALIZADO", não estou conseguindo evidenciar esse retorno para poder finalizar o processo.

Poderia alguém me dar uma ajuda nesse sentido? De presencia, se possível com exemplos.
Afinal hoje faz uma semana que estou nessa luta.

Grato.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Nenhuma das duas deveria ter url encoded. só json e jose

# pix
Avatar discord do usuario ronierys2

ronierys2

Ver Respostas

achei o problema!

para requisições cob: criar, consultar, cancelar e pix: consultar estou fazendo assim e esta funcionando: ContentType := 'application/json; application/x-www-form-urlencoded; charset=UTF-8;';

para o solicitação de devolução de pix so funcionou assim: ContentType := 'application/json';

# devs
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@jonadabir há uma falha na forma com que você está montando a requisição.

Ela deve ser da seguinte forma:

js
const certificatePath = path.join(
__dirname,
'../../../certificates/pix_certificate.p12',
);

const certificate = fs.readFileSync(certificatePath);

const getPixAuthorization = async () => {
const agent = new https.Agent({
pfx: certificate,
passphrase: '',
});

let authParams = {
method: 'POST',
url: 'https://pix-h.api.efipay.com.br/oauth/token',
data: {
grant_type: 'client_credentials',
},
httpsAgent: agent,
};
let token = Buffer.from(credentials.client_id + ':' + credentials.client_secret).toString('base64')
authParams.headers['Authorization'] = 'Basic ' + token
authParams.headers['Content-Type'] = 'application/json'
const authRes = await axios(authParams);

return authRes.data;
};

# pix
Avatar discord do usuario ronierys2

ronierys2

{
"nome": "json_invalido",
"mensagem": "Valores ou tipos de campo inv?lidos",
"erros": [
{
"chave": "required",
"caminho": "",
"mensagem": "deve ter a propriedade obrigat?ria body"
}
]
}

ao solicitar uma devolução pix estou recebendo esse erro!
podem me dizer do que se trata ?

# pix
Avatar discord do usuario _franciscovieira

_franciscovieira

No json vei esse aqui
reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response

# pix
Avatar discord do usuario _franciscovieira

_franciscovieira

corpo do json

# pix
Avatar discord do usuario _franciscovieira

_franciscovieira

json {"grant_type":"client_credentials"}

# pix
Avatar discord do usuario _franciscovieira

_franciscovieira

Boa tarde pessoal
Estou com uma dúvida aqui
params.put("grant_type", "client_credentials");

String json = g.toJson(new GrantType("client_credentials"));

Esse cara está me retornando que está fatando grantType

# devs
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @jonadabir, tudo bem?
A autenticação para a API de cobranças deve ser algo da seguinte forma

js
async authenticate() {
let authParams = {
method: 'POST',
url: 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
auth: {
username: credentials.client_id,
password: credentials.client_secret,
},
data: {
grant_type: 'client_credentials',
},
}
return axios(authParams)
.then((res) => {
this.auth = res.data
this.auth.authDate = new Date().getTime() / 1000
})
.catch((error) => {
throw error.data
})
}

# devs
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

Bom dia! Estou tentando fazer a requisiçao de obter a autorizaçao no node igual na documentaçao, porem estou tomando um 401

ts
const credentials = {
client_id: process.env.EFI_CLIENT_ID,
client_secret: process.env.EFI_CLIENT_SECRET,
};

export const getCobrancasAuthorization = async () => {
const data = JSON.stringify({ grant_type: 'client_credentials' });
const data_credentials =
credentials.client_id + ':' + credentials.client_secret;

const auth = Buffer.from(data_credentials).toString('base64');

const config = {
method: 'POST',
url: 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
headers: {
Authorization: 'Basic ' + auth,
'Content-Type': 'application/json',
},
data: data,
};

try {
const response = await axios(config);
return response.data;
} catch (error) {
console.log(error);
}
};

# pix
Avatar discord do usuario gil.brandao0067

gil.brandao0067

Obrigado @guilherme_efi, mas o retorno foi o mesmo

[Done] exited with code=1 in 1.923 seconds

[Running] node "c:\GERENCIA_NET_EFI\SDK_Node\sdk-node-apis-efi-master\examples\pix\send\pixSend.js"

c:\GERENCIA_NET_EFI\SDK_Node\sdk-node-apis-efi-master\node_modules\sdk-node-apis-efi\lib\endpoints.js:48
throw FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: ${this.options.certificate}
^
FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: c:\GERENCIA_NET_EFI\SDK_Node\sdk-node-apis-efi-master\examplesC:GERENCIA_NET_EFIPJCERTIFICADOSproducao-570499-CERT_PRODUCAO_GDB.p12
(Use node --trace-uncaught ... to show where the exception was thrown)

Node.js v21.6.2

[Done] exited with code=1 in 0.729 seconds

# devs
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

estou tentando utilizar a lib payment-token-efi, porem estou tendo esse erro da print. Alguem sabe como resolver? Importei da seguinte maneira: import EfiJs from 'payment-token-efi';
imagem enviada na mensagem pelo usuario jonadabir

# dúvidas
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

ts
EfiJs.CreditCard
.setAccount('Identificador_de_conta_aqui')
O que seria o identificador de conta?

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @gil.brandao0067. Bom dia!
Esta mudança que o João mencionou não altera na SDK. Você irá apenas incluir o __dirname junto com as credenciais para indicar o caminho absoluto para o certificado.
Exemplo:

js
module.exports = {
sandbox: false,
client_id: 'seu_client_id',
client_secret: 'seu_client_secret',
certificate: __dirname + '/caminho/ate/seu/certificado.p12',
};

# pix
Avatar discord do usuario gil.brandao0067

gil.brandao0067

om dia consultores!
Estou com aquele típico problema de fácil solução, mas que não se enxerga sem o olhar técnico.
Falha na leitura do certificado. Acreditem, ele está nesse caminho.

Conto com a solidária e preciosa ajuda, pois, estou desde sexta feira tentando concluir essa integração e isso está me consumindo sem necessidade. Gero pix em Homologação, mas preciso botar para moer esse projeto em tempo real de produção.

[Running] node "c:\GERENCIA_NET_EFI\SDK_Node\sdk-node-apis-efi-master\examples\pix\send\pixSend.js"

c:\GERENCIA_NET_EFI\SDK_Node\sdk-node-apis-efi-master\node_modules\sdk-node-apis-efi\lib\endpoints.js:48
throw FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: ${this.options.certificate}
^
FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: C:GERENCIA_NET_EFIPJCERTIFICADOSproducao-570499-CERT_PRODUCAO_GDB.p12
(Use node --trace-uncaught ... to show where the exception was thrown)

Node.js v21.6.2

# pix
Avatar discord do usuario gil.brandao0067

gil.brandao0067

Bom dia consultores!
Estou com aquele típico problema de fácil solução, mas que não se enxerga sem o olhar técnico.
Falha na leitura do certificado. Acreditem, ele está nesse caminho.

Conto com a solidária e preciosa ajuda, pois, estou desde sexta feira tentando concluir essa integração e isso está me consumindo sem necessidade. Gero pix em Homologação, mas preciso botar para moer esse projeto em tempo real de produção.

[Running] node "c:\GERENCIA_NET_EFI\SDK_Node\sdk-node-apis-efi-master\examples\pix\send\pixSend.js"

c:\GERENCIA_NET_EFI\SDK_Node\sdk-node-apis-efi-master\node_modules\sdk-node-apis-efi\lib\endpoints.js:48
throw FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: ${this.options.certificate}
^
FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: C:GERENCIA_NET_EFIPJCERTIFICADOSproducao-570499-CERT_PRODUCAO_GDB.p12
(Use node --trace-uncaught ... to show where the exception was thrown)

Node.js v21.6.2

# pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @raphas9! Tudo bem?

Sim, ao consultar uma cobrança via API, o status da cobrança é retornado. Quando a cobrança está paga, o status retornado é "CONCLUÍDA".
Quanto à devolução, as informações sobre ela são retornadas. Em nossa documentação, há um exemplo de JSON retornado quando ocorre uma devolução:

json
{
"status": "CONCLUIDA",
"calendario": {
"criacao": "2020-09-09T20:15:00.358Z",
"expiracao": "3600"
},
"location": "qrcodes-pix.gerencianet.com.br/1dd7f893-a58e-4172-8702-8dc33e21a403",
"txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",
"revisao": 1,
"devedor": {
"cnpj": "12345678000195",
"nome": "Empresa de Serviços SA"
},
"valor": {
"original": "100.00"
},
"chave": "40a0932d-1918-4eee-845d-35a2da1690dc",
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
"pix": [
{
"endToEndId": "E12345678202009091221kkkkkkkkkkk",
"txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",
"valor": "110.00",
"horario": "2020-09-09T20:15:00.358Z",
"infoPagador": "0123456789",
"devolucoes": [
{
"id": "123ABC",
"rtrId": "Dxxxxxxxx202009091221kkkkkkkkkkk",
"valor": "10.00",
"horario": {
"solicitacao": "2020-09-09T20:15:00.358Z"
},
"status": "EM_PROCESSAMENTO"
}
]
}
]
}

# pix
Avatar discord do usuario pedrolucasneto

pedrolucasneto

Ver Respostas

cara, de fato eu estava com as chaves de prod, não me atentei! Agora já recebi um erro diferente, onde o json parece estar inválido, vou configurar novamente! Obrigado @guilherme_efi