Histórico de mensagens sobre js em devs

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: devs
Avatar discord do usuario irineumarques

irineumarques

Eu estou importando desta maneira:

use Efí\Efí;

Este é o meu método para atualizar o
status
no banco de dados:

public function notification(Request $request) {
try {
$efiEnviroment = env('EFI_ENVIROMENT') === 'sandbox' ? true : false;

$options = [
'client_id' => env('EFI_CLIENT_ID'),
'client_secret' => env('EFI_CLIENT_SECRET'),
'sandbox' => $efiEnviroment
];

$token = $request->notification;

Log::info("Token de notification: $token");

$params = [
'token' => $token
];

$api = new Efí($options);
$chargeNotification = $api->getNotification($params, []);

// Conta o tamanho do array data (que armazena o resultado)
$i = count($chargeNotification["data"]);
// Pega o último Object chargeStatus
$ultimoStatus = $chargeNotification["data"][$i-1];
// Acessando o array Status
$status = $ultimoStatus["status"];
// Obtendo o ID da transação
$charge_id = $ultimoStatus["identifiers"]["charge_id"];
// Obtendo a String do status atual

$current_status = $status["current"];
$previous_status = $status["previous"];

$payment = Payment::where('charge_id', $charge_id)->first();

$payment->update([
'status' => $current_status
]);

Log::info("Status anterior: $previous_status . Status atual: $current_status");

return response()->json([
'status' => 'success',
'message' => 'Pagamento processado com sucesso.',
'data' => $payment,
], 200);


} catch (\Exception $e) {
$error_message = $e->getMessage() ? $e->getMessage() : $e;
Log::error($error_message);
return response()->json(['error', $error_message], 500);
}
}

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Ah sim, talvez a solução para Deno tenha que ser diferente, mesmo que compartilhe algumas características com essa que resolveu no Next.JS.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Eu acho que tem no histórico do canal um usuário que citou isso mas por causa de uma outra plataforma serverless para NodeJS, e ele fez uma adaptação no SDK para isso...

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Depende de uma coisa que não sei se alguém do canal sabe que é o quanto Deno é mais Javascript e quanto é mais Rust. Mas como não tem um SDK Rust na Efí, parece que começar do NodeJS ou do TypeScript seja o jeito mesmo.

Avatar discord do usuario spl_01

spl_01

Ver Respostas

Olá, galera! Tranquilos? Por gentileza, subi minha aplicação para um EC2 e estou sofrendo com esse erro: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @delfino3927!
O rastreamento de erro que você forneceu indica um problema ao tentar decodificar uma resposta JSON.
Vou criar um atendimento para obter mais informações

Avatar discord do usuario meliodas7010

meliodas7010

Ver Respostas

Ah, agora entendi. A validação é feita pelo servidor(no meu caso nginx) e o script acima é um exemplo de como devo responder ao handshake vindo da EFI retornando os dados descriptografados em json, correto?

Avatar discord do usuario leandro535

leandro535

Ver Respostas

consigo fazer a simulação de pagamento manual mas não recebo de volta os dados no arquivo 'dados.json'

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Você vai ter que usar algum componente externo como o API Gateway da AWS ou do Oracle Cloud para validar o mTLS e você estabelecer entre esse componente e o NestJS outra forma de autenticação mútua.

Avatar discord do usuario garcia8994

garcia8994

Ver Respostas

Bom dia, tudo bem? Não sei se conseguiria fazer essa pergunta aqui, mas fica a tentativa.
Estou fazendo a integração com a api do BB, e eles tem a questão do mTLS, nossa api é em NodeJS utilizando o framework NestJS, eu não estou conseguindo resolver o problema de autenticar na api deles, alguém já passou por esse problema de repente? Obrigado.

Avatar discord do usuario dinhoafsn.

dinhoafsn.

Se ajudar mais alguém aí, a solução para fazer requisições do frontend Vue Js ou React em localhost e fazer as requições sem ser bloqueado pelo CORS é fazer proxy das solicitações:

exemplo criando o proxy para geração de token para cobrança

VUE JS / VITE / QUASAR

devServer: {
https: false,
open: true, // opens browser window automatically
// with RegEx
proxy: {
'/auth': {
target: 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/auth/, '')
}
},
cors: false
},

REACT:

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
app.use(
'/auth',
createProxyMiddleware({
target: ''https://cobrancas-h.api.efipay.com.br/v1/authorize',
changeOrigin: true,
})
);
};

Avatar discord do usuario dinhoafsn.

dinhoafsn.

Ver Respostas

// Rota para criar um boleto
app.get('/gerar-boleto', async (req, res) => {
try {
// const {items, payment} = req.body;
const {items, payment} = {
"items": [
{
"name": "Doação R$30,00 - Boleto",
"value": 3000,
"amount": 1
}
],
"payment": {
"banking_billet": {
"customer": {
"name": "Gorbadoc Oldbuck",
"cpf": "94271564656",
"email": "[email protected]",
"phone_number": "5144916523",
"address": {
"street": "Avenida Juscelino Kubitschek",
"number": "909",
"neighborhood": "Bauxita",
"zipcode": "35400000",
"city": "Ouro Preto",
"complement": "",
"state": "MG"
}
},
"expire_at": "2023-12-15",
"configurations": {
"fine": 0,
"interest": 0
},
"message": "teste"
}
}
}
;

// Exemplo: Criar um boleto com a biblioteca efipay
const resposta = await efipay.createOneStepCharge([], {items, payment});

// Aqui você pode manipular a resposta conforme necessário
res.json({resposta});
} catch (error) {
console.error('Erro ao gerar boleto:', error);
res.status(500).json({error: 'Erro ao gerar boleto'});
}
});

Avatar discord do usuario dinhoafsn.

dinhoafsn.

const efipay = new EfiPay(options);

console.log(efipay.createCharge())

app.use(express.json());

Avatar discord do usuario dinhoafsn.

dinhoafsn.

vou fazer o testes entao colocando uma api express js no meio entao

Avatar discord do usuario dinhoafsn.

dinhoafsn.

Alguem teve problema de CORS ao tentar integrar um frontend vue js / vite, minha aplicação roda no localhost porta 9200 e faz requição usando axios . estou recebendo erro de CORS. é preciso fazer algo para conseguir enviar requisoes para api de homologacao?

Avatar discord do usuario nalberth

nalberth

Ver Respostas

Boa noite estou implementando os métodos de pagamentos da efí, mas pra fazer a cobrança no cartão tem que ter o payment_token que não é mais capturado pelo back-end, o meu front-end é implementado com reactJs e TypeScrit ainda não consegui fazer essa implementação,a biblioteca sugerida na documentação simplesmente não possui tipagem para typescript, alguém passou por esse problema?