PayPal
Componente Principal
- Nombre:
PaypalPayment - Código:
paypal_express
Funcionalidades
- Integración con PayPal Express Checkout
- Soporte para cuenta PayPal y tarjetas
- Proceso de pago simplificado
- Manejo de reembolsos
Implementación
Configuración Inicial
const paypalOptions: ReactPayPalScriptOptions = {
clientId: process.env.NEXT_PUBLIC_PAYPAL_CLIENTID,
currency: "MXN",
intent: "capture",
'disable-funding': 'card'
}
Generación de Token
const generatePaypalToken = async () => {
const tokenResult = await createPaypalExpressToken()
return {
token: tokenResult.token,
// Otros detalles del token
}
}
Integración con Magento
Establecer Método de Pago
const setPaypalPaymentMethod = async () => {
const input: SetPaymentMethodOnCartInput = {
cart_id: cartId,
payment_method: {
code: PAYMENT_METHOD_PAYPAL,
paypal_express: {
payer_id: payerId,
token: paypalToken
}
}
};
return await MagentoOrderService.setPaymentMethod(input);
}
Flujo de Pago
- Inicialización de PayPal Button
- Creación de orden en PayPal
- Aprobación del usuario
- Captura del pago
- Confirmación en Magento
const onApprove = async (data: OnApproveData, actions: OnApproveActions) => {
// Proceso de aprobación y captura
await setPaypalPaymentMethod();
await placeOrder();
}
Comunicación con Backend
- La gestión de webhooks y eventos se realiza directamente en Magento
- Las notificaciones de PayPal (IPN - Instant Payment Notification) son manejadas por el módulo de PayPal en Magento
- El frontend solo se encarga de la integración con PayPal Express Checkout y la redirección del usuario
Variables de Entorno Requeridas
NEXT_PUBLIC_PAYPAL_CLIENTID=your_client_id
PAYPAL_SECRET=your_secret
PAYPAL_ENVIRONMENT=sandbox|production