Primeiro commit
This commit is contained in:
82
config/mercadopago-demo.js
Normal file
82
config/mercadopago-demo.js
Normal file
@@ -0,0 +1,82 @@
|
||||
// Versão DEMO do Mercado Pago para desenvolvimento
|
||||
// Simula a geração de PIX sem credenciais reais
|
||||
|
||||
class MercadoPagoServiceDemo {
|
||||
constructor() {
|
||||
console.log('🎭 Modo DEMO: Simulando Mercado Pago para desenvolvimento');
|
||||
}
|
||||
|
||||
async gerarPix(dados) {
|
||||
try {
|
||||
console.log('🏦 [DEMO] Gerando PIX com dados:', dados);
|
||||
|
||||
// Simular delay da API
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
|
||||
// Gerar dados fictícios mas realistas
|
||||
const payment_id = `demo_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
||||
const qr_code = this.gerarQRCodeDemo();
|
||||
const qr_code_base64 = this.gerarQRCodeBase64Demo();
|
||||
|
||||
console.log('✅ [DEMO] PIX gerado com sucesso!');
|
||||
|
||||
return {
|
||||
success: true,
|
||||
payment_id: payment_id,
|
||||
qr_code: qr_code,
|
||||
qr_code_base64: qr_code_base64,
|
||||
pix_copy_paste: qr_code,
|
||||
expiration_date: new Date(Date.now() + 30 * 60 * 1000).toISOString(),
|
||||
transaction_amount: parseFloat(dados.valor),
|
||||
status: 'pending'
|
||||
};
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ [DEMO] Erro ao gerar PIX:', error);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
async consultarPagamento(payment_id) {
|
||||
try {
|
||||
console.log('🔍 [DEMO] Consultando pagamento:', payment_id);
|
||||
|
||||
// Simular delay da API
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
|
||||
// Para demo, sempre retorna pendente
|
||||
return {
|
||||
success: true,
|
||||
status: 'pending',
|
||||
status_detail: 'pending_waiting_payment',
|
||||
transaction_amount: 10.00,
|
||||
date_approved: null,
|
||||
external_reference: payment_id.replace('demo_', '')
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('❌ [DEMO] Erro ao consultar pagamento:', error);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
gerarQRCodeDemo() {
|
||||
// QR Code PIX fictício mas com formato real
|
||||
const timestamp = Date.now().toString();
|
||||
const random = Math.random().toString(36).substr(2, 10);
|
||||
|
||||
return `00020126580014br.gov.bcb.pix0136${random}5204000053039865802BR5925LIBERI KIDS DEMO STORE6009SAO PAULO62070503***6304${timestamp.substr(-4)}`;
|
||||
}
|
||||
|
||||
gerarQRCodeBase64Demo() {
|
||||
// QR Code base64 fictício (imagem 1x1 pixel transparente)
|
||||
return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new MercadoPagoServiceDemo();
|
||||
Reference in New Issue
Block a user