Apoya mi contenido: 

Tabla de contenido

Cómo integrar pagos con PayPal y Mercado Pago en tu web (ejemplos reales)

Aceptar pagos en línea de forma segura y simple es clave para hacer crecer tu negocio. En esta guía verás dos caminos para integrar PayPal y Mercado Pago: con WooCommerce (rápido y sin código) y con implementación personalizada (ideal para apps o sitios a medida).


Opción A — Integración con WooCommerce (sin código)

1) PayPal en WooCommerce

  1. Instala y activa el plugin WooCommerce PayPal Payments.
  2. Ve a WooCommerce > Ajustes > Pagos > PayPal y conecta tu cuenta (modo Sandbox para pruebas).
  3. Habilita PayPal, Tarjeta con PayPal y, si quieres, Pay Later.
  4. Prueba una compra con productos de prueba y verifica el pedido en WooCommerce > Pedidos.

2) Mercado Pago en WooCommerce

  1. Instala Mercado Pago payments for WooCommerce.
  2. En WooCommerce > Ajustes > Pagos, habilita los métodos: Checkout Pro (redirección) y/o Checkout Personalizado (tarjetas en tu sitio).
  3. Agrega tus Access Token y Public Key (usa Sandbox para pruebas).
  4. Configura notificaciones IPN/Webhooks para actualizar el estado de los pedidos automáticamente.

Ventajas WooCommerce: activación rápida, conciliación automática de pedidos, reembolsos desde el tablero, compatibilidad con cupones y envíos.


Opción B — Integración personalizada (React/Next.js, PHP o Node)

1) PayPal Checkout (Smart Buttons)

Front‑end básico para cobrar con PayPal vía SDK JS:

<!-- Carga del SDK (client-id de pruebas) -->
<script src="https://www.paypal.com/sdk/js?client-id=TEST_CLIENT_ID&currency=USD"></script>

<div id="paypal-button-container"></div>
<script>
paypal.Buttons({
  createOrder: function(data, actions) {
    return actions.order.create({
      purchase_units: [{ amount: { value: "49.90" }, description: "Plan Premium" }]
    });
  },
  onApprove: function(data, actions) {
    return actions.order.capture().then(function(order) {
      // TODO: enviar order al backend para registrar pago
      console.log("Pago capturado", order.id);
    });
  },
  onError: function(err) { console.error(err); }
}).render("#paypal-button-container");
</script>

Webhook de PayPal (Node/Express)

import express from "express";
const app = express();
app.use(express.json());

app.post("/webhooks/paypal", (req, res) => {
  // TODO: validar firma (PayPal transmission id/timestamp/cert)
  const event = req.body; // sale.complete, payment.capture.completed, etc.
  // Actualiza tu pedido en DB según event.resource.status
  res.sendStatus(200);
});

app.listen(3000);

2) Mercado Pago — Checkout Pro (redirección)

Creación de preferencia en el backend (Node/Express):

import express from "express";
import mercadopago from "mercadopago";
mercadopago.configure({ access_token: process.env.MP_ACCESS_TOKEN });

const app = express();
app.use(express.json());

app.post("/checkout", async (req, res) => {
  const preference = {
    items: [{ title: "Plan Premium", quantity: 1, currency_id: "PEN", unit_price: 49.90 }],
    back_urls: {
      success: "https://tu-dominio.com/gracias",
      failure: "https://tu-dominio.com/error",
      pending: "https://tu-dominio.com/pago-pendiente"
    },
    auto_return: "approved",
    notification_url: "https://tu-api.com/webhooks/mercadopago"
  };
  const result = await mercadopago.preferences.create(preference);
  res.json({ init_point: result.body.init_point });
});

app.post("/webhooks/mercadopago", (req, res) => {
  // Valida el evento y consulta el pago para estado definitivo
  // Actualiza tu pedido en DB (approved, pending, rejected)
  res.sendStatus(200);
});

app.listen(3000);

3) Mercado Pago — Checkout personalizado (tarjetas en tu sitio)

En el front‑end cargas el SDK JS y tokenizas la tarjeta (evitas tocar datos sensibles en tu servidor):

<script src="https://sdk.mercadopago.com/js/v2"></script>
<form id="pay-form">
  <input type="text" id="cardNumber" data-checkout="cardNumber" placeholder="Número de tarjeta" />
  <input type="text" id="cardholderName" data-checkout="cardholderName" placeholder="Titular" />
  <!-- más campos: vencimiento, CVV, docType, docNumber -->
  <button type="submit">Pagar</button>
</form>

<script>
const mp = new MercadoPago("PUBLIC_KEY");
const form = document.getElementById("pay-form");
form.addEventListener("submit", async (e) => {
  e.preventDefault();
  // tokeniza tarjeta
  const token = await mp.fields.createCardToken({ /* mapear campos */ });
  // envía el token a tu backend para crear el pago
  const res = await fetch("/api/mp/charge", {
    method: "POST", headers: {"Content-Type":"application/json"},
    body: JSON.stringify({ token, amount: 49.90, description: "Plan Premium" })
  });
});
</script>

Backend que crea el pago (Node)

app.post("/api/mp/charge", async (req, res) => {
  const { token, amount, description } = req.body;
  const payment = await mercadopago.payment.create({
    transaction_amount: Number(amount),
    token,
    description,
    installments: 1,
    payer: { email: "cliente@correo.com" }
  });
  res.json(payment.body);
});

Buenas prácticas para cobrar online

  • Sandbox primero: prueba con usuarios y tarjetas de test.
  • Webhooks obligatorios: el estado final del pago lo dicta el proveedor, no el front‑end.
  • Moneda e impuestos: define PEN/USD, IGV y fees esperados.
  • PCI y seguridad: nunca guardes tarjetas en tu servidor; usa tokenización.
  • UX de pago clara: resúmenes, monto final, políticas de reembolso y comprobante.
  • Logs y conciliación: registra orderId, paymentId, status y amount para auditoría.

Errores comunes y cómo evitarlos

  • No validar webhooks: puede marcar pagos como aprobados sin confirmación. Solución: valida firma (PayPal) o consulta el pago (Mercado Pago) antes de actualizar el pedido.
  • Redirecciones incorrectas: URLs de éxito/falla mal configuradas. Solución: usa dominios definitivos y prueba en staging.
  • Duplicidad de pedidos: reintentos del cliente o del servidor. Solución: idempotencia (usa un order_key único).

Conclusión

Con WooCommerce puedes habilitar PayPal y Mercado Pago en minutos. Si tu proyecto es a medida, el enfoque de SDK + Webhooks te da control total sobre la experiencia y los flujos de post‑pago. Aplica las buenas prácticas de seguridad y pruebas para lograr cobros confiables y escalables.

👉 ¿Quieres que dejemos tu pasarela de pago funcionando (WooCommerce o integración a medida)?
Solicítalo aquí.

¡Comunícate con nosotros!

Ads Blocker Image Powered by Code Help Pro

Bloqueador de anuncios detectado!!!

 Por favor, apóyanos desactivando este bloqueador de anuncios para seguir creando contenido que te gusta 🙏🏼

Powered By
100% Free SEO Tools - Tool Kits PRO