Configurar PayPal
PayPal es la tercera pasarela con soporte nativo. Como Stripe, no viene incluida — instala el plugin oficial WooCommerce PayPal Payments y deja que Advanced Subscriptions añada el bridge de recurrente encima.
Prerequisitos
- Una cuenta PayPal Business en el país / moneda en la que facturas.
- El plugin gratuito WooCommerce PayPal Payments, versión 2.0 o más reciente.
- Reference Transactions activadas en tu cuenta PayPal. Las cuentas nuevas pueden necesitar pedirlo a soporte PayPal; es la API que nos permite cargar una autorización guardada off-session.
Conectar PayPal
- En WooCommerce → Ajustes → Pagos → PayPal, pulsa Conectar. Se abre el flujo OAuth de PayPal; entra con tu cuenta Business.
- Tras autorizar, el plugin trae tus credenciales live (o sandbox si activas la opción sandbox).
- Verifica que Reference Transactions aparece como activado en los ajustes. Si no, contacta a soporte PayPal; el resto del flujo no funciona sin ello.
- Guarda y haz un pedido de prueba vía PayPal sandbox.
Cómo funciona el recurrente con PayPal
El bridge usa las Reference Transactions (RTs) de PayPal:
- En el checkout, el cliente entra en PayPal y autoriza un "billing agreement" — un consentimiento abierto para cobrar.
- PayPal devuelve un ID de billing agreement. Nuestro plugin lo guarda en la suscripción.
- En cada renovación, el plugin llama a la API de PayPal para crear una reference transaction contra ese acuerdo. Sin interacción del cliente.
- Si el cliente revoca el billing agreement desde su cuenta PayPal, la siguiente renovación falla. Lo capturamos y disparamos el flujo de reintentos estándar.
Webhooks
WC PayPal Payments registra su URL de webhook durante la conexión OAuth. Escuchamos PAYMENT.SALE.COMPLETED, PAYMENT.SALE.DENIED, BILLING.SUBSCRIPTION.CANCELLED (para revocaciones) y PAYMENT.SALE.REFUNDED. Las disputas que el cliente abre desde su cuenta PayPal aparecen en WooCommerce → Pedidos como un flag de estado "Disputado".
Hooks relevantes
aswc_paypal_reference_txn_args— filtra los parámetros de la reference transaction.aswc_paypal_webhook_handled— se dispara tras procesar un webhook de PayPal.