Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

134
Visualizações
¿Cómo puedo mostrar un botón de suscripción inteligente de PayPal y un botón de captura inteligente de PayPal en la misma página?

Cuando intente agregar un botón de suscripción de PayPal y un botón de captura/pedido para pagos únicos en la misma página, debe importar el archivo Javascript de PayPal dos veces con diferentes parámetros ( intent=subscription&vault=true versus solo intent=capture )

Si intenta importar ambos botones, no se procesarán.

¿Cómo puede mostrar una suscripción de PayPal y un botón inteligente de pago único de PayPal en la misma página?

Ejemplo de código para reproducir el problema:

 <script src="https://www.paypal.com/sdk/js?client-id={{YOUR CLIENT ID}}&currency=USD"></script> <script src="https://www.paypal.com/sdk/js?client-id={{YOUR CLIENT ID}}&currency=USD&intent=subscription&vault=true"></script> <div id="some-container"></div> <div id="some-subscription-container"></div> <script> paypal.Buttons().render('#some-container'); paypal.Buttons().render('#some-subscription-container'); </script>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Después de luchar con esto durante horas, encontré una solución que funciona muy bien para mostrar ambos botones en la misma página (o incluso muchos de cada uno) y quiero compartirlo para poder ahorrarle a otros el dolor.

1 - Importando la biblioteca dos veces

El primer problema es cómo importar ambos archivos Javascript de PayPal al mismo tiempo con diferentes parámetros. La solución es usar data-namespace en las etiquetas de script como esta:

 <script src="https://www.paypal.com/sdk/js?client-id={{YOUR CLIENT ID}}&currency=USD" data-namespace="paypal_one_time"></script> <script src="https://www.paypal.com/sdk/js?client-id={{YOUR CLIENT ID}}&currency=USD&intent=subscription&vault=true" data-namespace="paypal_subscriptions"></script>

2 - Mostrar los dos botones (o más)

Ahora, para representar los botones, necesita usar esos espacios de nombres en lugar de la variable de paypal . Por ejemplo:

 paypal_one_time.Buttons().render('#some-container'); paypal_subscriptions.Buttons().render('#some-subscription-container');

3 - Suscripciones rotas después del flujo de pago único

El último problema que encontrará es que al hacer clic en los botones de pago único se rompen los botones de suscripción. Si intenta hacer clic en la suscripción después del botón único, no funcionará (diciendo que no tiene suficiente autorización y cerrando la ventana emergente).

Para solucionar esto, la forma más fácil es volver a mostrar los botones de suscripción en su página cada vez que finaliza un flujo de pago único (en los métodos onApproved/onCancelled/onError dentro de las opciones Buttons() para sus botones de pago único) .

 onApprove: function(data, actions) { return actions.order.capture().then(function(orderData) { // process your one time payment // re-render subscription buttons because now they are broken! reRenderSubscriptionButtons(); }); }, onCancel: function(data) { reRenderSubscriptionButtons(); },

En esos eventos en one_time_button, simplemente llame a una función que haga algo como:

 function reRenderSubscriptionButtons() { // remove everything from the container document.getElementById("some-subscription-container").innerHTML=''; // render the subscription buttons again (you can call the same function you use to render it the first time too) paypal_subscriptions.Buttons().render('#some-subscription-container'); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda