es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo insertar los botones inteligentes de PayPal a través del código?

Este es el código para renderizar los botones inteligentes de Paypal:

<script src="https://www.paypal.com/sdk/js?client-id=test"></script>
<script>paypal.Buttons().render('body');</script>

Pero quiero renderizarlos a través del código, así que intenté hacer esto:

document.body.innerHTML='<script src="https://www.paypal.com/sdk/js?client-id=test"></script>';
paypal.Buttons().render('body');

Pero no funcionó, ¿cómo puedo lograrlo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Cargar de forma asíncrona el script de PayPal y esperar a que termine de cargar es la clave para renderizar correctamente los botones inteligentes de PayPal a través del código. Aquí hay un ejemplo de fragmento de código que logra esto:

    const script = document.createElement('script');
    script.src = 'https://www.paypal.com/sdk/js?client-id=test&disable-funding=credit,card';
    document.body.appendChild(script);
    
    script.onload = () => {
      paypal.Buttons().render('body');
    };
    

    Este código crea dinámicamente un elemento de script, establece su atributo src en la URL del script de PayPal SDK con el ID de cliente de su cuenta de PayPal, y lo agrega al cuerpo del documento. Luego espera a que el script termine de cargar escuchando el evento onload del elemento de script. Una vez que se carga el script, llama al método paypal.Buttons().render('body')para renderizar los botones inteligentes de PayPal en la página web.

    Tenga en cuenta que en el ejemplo anterior, el parámetro de consulta disable-funding=credit,card se agregó para deshabilitar los pagos con tarjeta de crédito ya que el sandbox de PayPal no admite pagos con tarjeta de crédito de manera predeterminada. Si desea habilitar los pagos con tarjeta de crédito en el sandbox, puede eliminar este parámetro.

Comments are closed.