# Conectar Paymos con Drupal Commerce

> Instala Paymos en Drupal Commerce, conecta tu proyecto y configura Sandbox o Live, las comprobaciones de pagos y cron.

## Requisitos

Instala la versión estable 1.0.0 con `composer require drupal/commerce_paymos:^1.0`. Después, conecta tu tienda a Paymos y añade la pasarela de pago.

Necesitas Drupal `^10.3 || ^11` y Commerce `^3`. El módulo declara PHP `^8.1`; si tu versión de Drupal exige una versión superior, respeta ese requisito. La tienda debe tener una dirección pública con HTTPS.

El pago se hace fuera de la tienda; Drupal Commerce conserva pedidos y pagos.

## Instala el módulo

La vía principal es Composer. Cuando haya una versión publicada en Drupal.org, ejecuta este comando desde tu proyecto Drupal:

```sh
composer require 'drupal/commerce_paymos:^1.0'
```

También puedes instalar el ZIP de la [versión en GitHub](https://github.com/Paymos-labs/drupal-commerce/releases/latest), que incluye el SDK de PHP. Copia la carpeta `commerce_paymos` al directorio de módulos contribuidos y activa el módulo en Drupal. El módulo tiene licencia GPL-2.0-or-later; el SDK, MIT.

## Conecta la tienda

Primero, abre el panel de Paymos y selecciona el proyecto de tu tienda. Después, abre `/admin/commerce/config/payment/paymos` en Drupal y pulsa **Connect Paymos**. Sigue el enlace de confirmación y autoriza la conexión para el proyecto actual. Vuelve a Drupal y pulsa **Check approval**.

Después, crea una pasarela en `/admin/commerce/config/payment-gateways/add`. Elige Paymos y Sandbox o Live.

Las credenciales quedan cifradas en Drupal state. La clave privada de Drupal y `hash_salt` las protegen; no entran en las exportaciones de configuración. Si cambia la URL canónica, conecta la tienda de nuevo. La conexión registra `/paymos/webhook` sin que tengas que introducir secretos ni crear el webhook a mano.

Copie una vez las direcciones del administrador de Drupal en su proyecto Paymos actual: `/paymos/return` en Success URL y `/paymos/return?cancel=1` en Fail URL. El comprador vuelve mediante Back to store en la página de pago. Los destinos se guardan durante una hora en la misma sesión del navegador, solo para el último checkout de Paymos. Si faltan los datos, han caducado o cambia el pedido o la pasarela, se abre el inicio de la tienda. Volver no confirma el pago: cuentan las comprobaciones de webhook/API y el pago nativo de Drupal Commerce.

Tras actualizar el módulo, reconstruya la caché de Drupal: `drush --uri=https://your-store.example cache:rebuild`.

## Comprobaciones de pagos

Cada notificación firmada da paso a una consulta a la API. Se cotejan factura, pedido, proyecto, entorno, importe y moneda. Una transacción SQL registra un único pago completado en Commerce; repetir la notificación no crea otro pago.

Los pagos parciales, tardíos o con datos que no coinciden no liberan mercancía por sí solos. Revisa las discrepancias. Tu flujo de pedidos de Commerce controla la entrega; el módulo no hace reembolsos automáticos.

## Programa cron

Mantén activo el cron de Drupal. Comprueba las facturas pendientes de resolver en grupos limitados. Indica a Drush la URL canónica HTTPS de tu tienda:

```sh
drush --uri=https://your-store.example cron
```

## Desinstala el módulo

Resuelve las facturas pendientes antes de desinstalar. Mientras queden sin resolver, la desinstalación estará bloqueada. Al quitar el módulo se borran los datos locales cifrados de conexión, pero se conservan los pagos nativos de Commerce.

Consulta la [guía de WooCommerce](/es/docs/cms-woocommerce.md) o el [catálogo de plugins](/product/plugins).
