Saltar a contenido

Convoca Marketplace

Convoca es una plataforma. Los plugins del ecosistema (members, enroll, gateway, shifts, publisher, assistant) son módulos del core; las extensiones externas se registran igual vía el SDK.

Cómo integrar una pasarela de pago externa (Stripe, etc.)

El gateway nativo usa Redsys, pero el hook público convoca_gateway_payment_completed permite a cualquier pasarela externa completar pagos y activar los flujos de members/enroll SIN tocar el gateway.

Firma del hook (congelada en API v3.0)

\Convoca\Core\Utils::do_action(
    'convoca_gateway_payment_completed',  // hook nuevo
    'convoca_payment_completed',          // hook legacy (alias)
    $pago_id,                             // ID del CPT pago
    $origin,                              // 'members' | 'enroll'
    $origin_id,                           // ID del miembro/inscripción
    $meta                                // meta completa del pago
);

Los listeners de members/enroll se registran con add_action('convoca_gateway_payment_completed', ..., 10, 5).

Flujo de una pasarela externa

1. Crear el pago:  Payment_Handler::create_payment([
       'amount_cents' => 1000,
       'origin'       => 'members',
       'origin_id'    => 123,
       'product_desc' => 'Cuota anual',
   ]);
2. Cobrar con tu pasarela (Stripe Checkout, etc.)
3. Cuando la pasarela confirme:
   $meta = CPT_Pago::get_meta($pago_id);
   \Convoca\Core\Utils::do_action(
       'convoca_gateway_payment_completed',
       'convoca_payment_completed',
       $pago_id, $meta['origin'], (int) $meta['origin_id'], $meta
   );
4. Members/Enroll activan la membresía/inscripción automáticamente.

Validaciones del gateway (no saltar)

Regla Dónde
origin Payment_Handler::create_payment()
origin_id debe existir Payment_Handler::create_payment()
Importe > 0 Payment_Handler::create_payment()
Dedup por _convoca_pago_id listeners members/enroll

Roadmap de extensiones (orden propuesto)

Extensión Tipo Depende de Prioridad
Stripe Payments Pasarela externa gateway (hook pagos) Alta
Telegram Notifier Notificaciones core (Push_Notifier) Media
Discord Webhooks Notificaciones core (Webhook_Manager) Media
Mailchimp Sync Newsletter members (emails) Media
Brevo Sync Newsletter members (emails) Media
Firma digital Documentos members (certificados) Baja
Facturación Contabilidad gateway (pagos) Baja

Todas como plugins independientes registrados con convoca_register_module.

Cómo empezar una extensión

  1. Clona la plantilla: github.com/josecarlosnieto91/hello-convoca
  2. Registra tu módulo con convoca_register_module
  3. Usa los helpers de \Convoca\Core\Utils (34 métodos públicos)
  4. Detecta plugins activos con \Convoca\Core\Features
  5. Documenta tus hooks en HOOKS (regenerable)

Guía del SDK

Ver docs.getconvoca.app/sdk — registro de módulos, patrones de CPT, shortcode, REST, hooks y convenciones.

API congelada

Los hooks, REST endpoints y shortcodes están congelados en v3.0. Cualquier cambio requiere deprecación. Referencia en el repo convoca-health-check (docs/openapi.yaml, docs/hooks-inventario.md).