Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

452
Vistas
El botón SDK de JavaScript de PayPal se abre sobre: ventana en blanco # bloqueada en la plantilla de Django pero no en el archivo HTML local

He estado tratando de integrar los botones de PayPal en mi sitio web de Django, pero sigo teniendo este problema en el que la ventana emergente de PayPal aparece como: en blanco # bloqueado. Puedo ver este error en la consola:

 popup_open_error_iframe_fallback {err: 'n: Can not open popup window - blocked\n at Ie (…owser=false&allowBillingPayments=true:1342:297830', timestamp: '1644780862712', referer: 'www.sandbox.paypal.com', sdkCorrelationID: 'f12370135a997', sessionID: 'uid_d36969c1b2_mtk6mja6mzy', …}

Lo que no entiendo es que el problema no está allí si solo abro el archivo HTML en un navegador... El script se ve así:

 <!-- Set up a container element for the button --> <div id="paypal-button-container" class='text-center mt-2'></div> <!-- Include the PayPal JavaScript SDK --> <script src="https://www.paypal.com/sdk/js?client-id=blahblahmyid&currency=EUR"></script> <script> // Render the PayPal button into #paypal-button-container paypal.Buttons({ locale: 'it_IT', style: { color: 'gold', shape: 'rect', layout: 'vertical', label: 'pay' }, // Set up the transaction createOrder: function(data, actions) { return actions.order.create({ purchase_units: [{ amount: { value: '88.44' } }] }); }, // Finalize the transaction onApprove: function(data, actions) { return actions.order.capture().then(function(orderData) { // Successful capture! For demo purposes: console.log('Capture result', orderData, JSON.stringify(orderData, null, 2)); var transaction = orderData.purchase_units[0].payments.captures[0]; alert('Transaction '+ transaction.status + ': ' + transaction.id + '\n\nSee console for all available details'); // Replace the above to show a success message within this page, eg // const element = document.getElementById('paypal-button-container'); // element.innerHTML = ''; // element.innerHTML = '<h3>Thank you for your payment!</h3>'; // Or go to another URL: actions.redirect('thank_you.html'); }); } }).render('#paypal-button-container'); </script>

Cuál es el problema ? No entiendo.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Hay una nueva característica en Django 4.0 que sigue a la adición del encabezado COOP en los navegadores más nuevos que, según tengo entendido, evita que los sitios remotos abran una ventana en el mismo contexto de navegación.

La configuración predeterminada de SECURE_CROSS_ORIGIN_OPENER_POLICY en django aísla el contexto de navegación solo al origen del documento actual. Configurarlo en el mismo origen-permitir-ventanas emergentes permite que la ventana emergente de PayPal se abra en el contexto actual.

Consulte https://docs.djangoproject.com/en/4.0/ref/middleware/#cross-origin-opener-policy

TLDR; establecer SECURE_CROSS_ORIGIN_OPENER_POLICY='permitir ventanas emergentes del mismo origen'

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para django 4.0 settings.py agregar

SECURE_CROSS_ORIGIN_OPENER_POLICY='permitir ventanas emergentes del mismo origen'

about 4 years ago · Juan Pablo Isaza Denunciar

0

No se puede abrir la ventana emergente - bloqueada

Pruebe con un navegador diferente con la configuración predeterminada. Parece que el que está utilizando tiene algo no estándar configurado o instalado que está bloqueando el proceso de pago.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda