Configura el SDK de PayPal para cobrar en MXN, habilitar vault y generar tu primera transacción con un botón inteligente. Verás cómo tomar el precio dinámico desde product.ejs, confirmar el pago con onApprove y probar todo con una cuenta de comprador en sandbox.
¿Cómo configurar el SDK de PayPal con currency y vault?
Para personalizar la integración, se edita header.ejs dentro de views/shared y se agregan parámetros al final de la línea donde está el client ID. El parámetro currency define la moneda del cobro (por ejemplo, MXN para peso mexicano; USD para dólares). El parámetro vault=true asegura una conexión entre el SDK y el backend de PayPal, requisito para crear suscripciones más adelante.
currency: define la moneda en que cobrarás. Facilita reportes y evita errores de conversión.
vault=true: conexión segura. Necesario para suscripciones.
header.ejs: archivo compartido donde se carga el SDK.
¿Cómo crear la transacción con el botón inteligente?
Dentro de product.ejs ya está integrado el botón. Desde la documentación, en la sección setup a transaction, se copia la base del código y se ajusta el monto. En lugar de un valor fijo (como 0.01), se usa la variable product.price disponible en la vista para cobrar el precio real del producto.
product.price: toma el precio dinámico del producto mostrado.
createOrder: define el monto que se enviará a PayPal.
onApprove: confirma que el pago fue aprobado y muestra una alerta.
¿Cómo definir el precio dinámico con product.price?
Reemplaza el valor fijo por la variable del producto. Así se cobra exactamente lo que se ve en pantalla.
Se agrega onApprove como segundo elemento del objeto de configuración. Aquí basta con una función anónima sin parámetros que dispare un mensaje de éxito. Esto verifica visualmente que el pago fue aprobado por PayPal.
onApprove: punto de confirmación del pago.
alert: retroalimentación inmediata para el usuario.
¿Cómo probar el flujo en sandbox con una cuenta de comprador?
Para pagar, hace falta una cuenta de comprador en sandbox. Desde la página principal del sandbox, en cuentas, se crea una cuenta personal (no business), eligiendo el país (México en el ejemplo), un correo como “mi comprador arroba email punto com” y una contraseña. Se puede asignar un balance alto (por ejemplo, un millón de pesos) y habilitar una tarjeta de crédito. Tras el estado “processing”, la cuenta queda lista.
cuenta personal de pruebas: simula al comprador real.
balance y tarjeta Visa: métodos de pago disponibles para testear.
login en PayPal: paso obligatorio antes de pagar.
¿Cómo crear una cuenta personal de pruebas?
Entrar a cuentas en sandbox y elegir crear nueva.
Seleccionar tipo: personal.
Definir correo y contraseña.
Asignar balance alto y habilitar tarjeta de crédito.
Esperar a que finalice “processing”.
¿Cómo pagar y verificar detalles en PayPal?
Refrescar la tienda y pulsar “pagar con PayPal”.
Iniciar sesión con la cuenta personal creada.
Verificar el precio: cien pesos mexicanos para la playera.
Confirmar datos del comprador y dirección: PayPal siempre requiere una dirección.
Elegir método de pago (por ejemplo, la tarjeta Visa) y pulsar “pagar ahora”.
Observar la alerta: “transacción creada”. Primera transacción exitosa con botón inteligente de PayPal.
Antes de avanzar: aunque el flujo anterior funciona en frontend, es posible que usuarios malintencionados intenten cambiar el precio. Por eso, el siguiente paso es capturar la transacción y enviar los datos al backend para comparar que el precio cobrado coincida con el que definiste. Así evitas cobros manipulados y aseguras la integridad del pedido.
¿Tienes dudas o quieres compartir tu implementación con currency, vault y onApprove? Deja tu comentario y conversemos.
Me pasa algo curioso, y es que cuando intento crear la transacción se cierra inmediatamente la ventana emergente que genera PayPal. Alguien tiene alguna idea de cómo puedo solucionarlo, o a qué se deba?
Es en relación a la moneda que agregaste en mi caso yo que soy de Guatemala y en paypal no esta esa opción de cobrar en Quetzales por el momento me toco que colocar que cobrara en Dolares por ende agregue USD en el currency que se agrega al final de tu Client ID y no GTQ que es la moneda de mi país
puede ser tu tipo fr monreda
Hola marcos. Tengo una duda. Si el tipo de moneda en mi cuenta es USD, pero quiero que mis clientes me paguen con su tdc o débito extranjera, ya sea con pesos chilenos, colombianos, mexicanos, soles, etc. ¿Paypal transforma ese saldo que ellos transfieren a saldo USD en mi cuenta?.. Esto con la intención de que me puedan pagar quienes no tengan una cuenta paypal, sean de cualquier país, pague con moneda nacional con su tarjeta y a la vez yo reciba esto en USD.
sí, claro, te transforma a USD todo tipo de moneda, siempre teniendo el cuenta que te transformará a dolares cantidades diferentes (dependiendo del valor de la moneda al momento de la compra).
Tengo varias preguntas. Muchos de mis clientes son emprendedores y mas en Venezuela que no tienen acceso a cuentas internacionales. Asi que mucho mas alla de las limitaciones politicas. Aqui todo se maneja en $ en efectivo. Con el tema de la cuarentena ya no es posible, sino el delivery y pago en linea. ¿Posiblemente ellos manejen una cuenta personal de paypal porque muchos de los no tienen empresas, pero es algo que realmente les pueda funcionar?
No tengo mucho conocimiento del área pero creo que es una buena opción para el mercado venezolano ya que muchas personas reciben sus salarios a través de esa plataforma. A eso se le suman las remesas que envían constantemente al país. Además no pierdes nada con implementarlo, además de que es poco usual en las web de venezuela. Posiblemente se convierta en tendencia.
Los pagos online por Paypal son una alternativa interesante. En el caso de Venezuela que es diferente al de latinoamérica, no todo el mundo tiene una tarjeta de crédito que tenga habilitada la opción de compras internacionales por Internet para poder poder validar una cuenta Paypal propia y tienes que recurrir a una tarjeta virtual de crédito prepagada para lograrlo u otro método.
Lo ideal es ofrecer diferentes alternativas como lo hace Platzi con la suscripción Expert donde puedes pagar mediante Paypal, el saldo que tengas en Google Play que se recarga mediante una Gift Card de Google Play o a través Apple ID Balance con una Gift Card de AppStore & iTunes que te acredita un saldo. Existen varias web que te permiten comprar las Gift Cards como Bitrefill (Con Bitcoin), Gyft, etc.
Bitcoin es otra opción interesante, me parece super genial que lo tengan como método de pago en Platzi Expert. Lighting Network es una opción atractiva para evitar esperas aprox. de 10 minutos a 5 horas o más que puede tardar las 6 verificaciones del bloque en Bitcoin, es similar a Zelle y pago móvil pero con Bitcoin, sería genial una opción similar con Tether y Dai.
Airtm, Uphold, Payeer y parecidos también son otras opciones atractivas. Siempre he escuchado a Christian de hablar de Stripe que me parece interesante esa herramienta además de otras pasarelas de pago.
Como selecciono que quiero pagar con mi balance de Paypal y no con la tarjeta?
// EL parametro de la moneda y la conección segura para creación de subscripciones lo tenemos que agregar directamente al script de CLIENTID<script src="https://www.paypal.com/sdk/js?client-id=CLIENTID&currency=USD&vault=true"></script>// Para pasar el monto del boton, lo hacemos durante el button render.<div id="paypal-button-container"></div><script> paypal.Buttons({createOrder:function(data, actions){return actions.order.create({purchase_units:[{amount:{value:5}}]});},onApprove:function(){ alert 'transaccion creada';}}).render('#paypal-button-container');</script>
Quiero saber si es posible enviar campos personalizados a PayPal ademas de value?
Hola
Puedes revisar la documentación del SDK de Paypal para ver todas las opciones que tienes para personalizar los campos. Te comparto una liga que te puede servir.
Saludos
Hola, alguien tiene el problema que no le muestra la ventana con el mensajes "Transacción finalizada" ?
No está el pais Ecuador para crear la cuenta del comprador.. :-(
Creala con otro país :)
gracias
Hace unos años hackeé un sitio que vendía boletos para un evento que usaba paypal para pagar y donde estaban todas las validaciones eran en el front, compré 3 boletos por .50 centavos MXN y en concepto de pago puse mi correo por si acaso querían que me contrataran para hacer bien su página... no me contactaron.
Bárbaro!!! Estuvo buena esa… 🤣😂🤣
config para transacciones de pagos
Config adicional en el script del SDK
primer comentario
¡Está increíble!.
Muy bueno , pero lo hubieras echo en react XP
Genial
Hola A todos!
PAYPAL permite pagos con TARJETA en el modo tradicional sin que el cliente tenga que crear una cuenta en PAYPAL??
Si es posible, se llega a ver algo de esto en este curso?
Slds.
Mi problema es que no sé cómo ingresar a esa parte de mi web, a mi no me sale eso. Yo no sé programación :(