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¶
- Clona la plantilla: github.com/josecarlosnieto91/hello-convoca
- Registra tu módulo con
convoca_register_module - Usa los helpers de
\Convoca\Core\Utils(34 métodos públicos) - Detecta plugins activos con
\Convoca\Core\Features - 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).