Pagos cripto para Paymenter
Una extensión de pasarela para Paymenter, el panel de facturación de hosting de código abierto. El cliente elige SnapEX Pay en una factura sin pagar y paga en USDT en TRC20, ERC20 o BEP20, o en otras monedas ofrecidas en la página de SnapEX Pay. Un webhook firmado registra el pago y la factura de Paymenter pasa a Paid.
Gratis. Versión 1.1.0.
Qué hace
- Una extensión de pasarela nativa para Paymenter v1 que aparece en Admin → Gateways.
- Los webhooks se verifican con HMAC-SHA256 y una ventana de 5 minutos, y la factura se vuelve a leer desde la API de SnapEX Pay antes de registrar cualquier pago.
- Los pagos se registran una sola vez: un webhook repetido no añade una segunda transacción. El importe acreditado es exactamente lo facturado, en la moneda de la factura.
- Cada sitio de Paymenter solo liquida sus propias facturas (se etiquetan con un hash de
APP_URL). - Modo de prueba con facturas de prueba que se confirman sin dinero real; los pagos de prueba se ignoran mientras la pasarela está en producción. Un tipo de cambio fijo a USD para tiendas que no facturan en USD.
Instalación
- Descomprime el archivo y pon su carpeta en Paymenter como
extensions/Gateways/SnapexPay/(de modo queSnapexPay.phpyroutes.phpqueden dentro; el nombre debe coincidir con la clase). Con la imagen de Docker usa/app/extensions/Gateways/SnapexPay. - Si la pasarela no aparece, ejecuta
composer dump-autoload -oyphp artisan optimize:clear. - En Paymenter ve a Admin → Gateways → New, elige SnapEX Pay y pega la clave API (permisos
invoices.read,invoices.write) del panel de SnapEX Pay. - En el panel → Developers configura la URL del webhook como
https://<your-paymenter>/extensions/snapexpay/webhooky pega el secretowhsec_…(se muestra una sola vez, al guardar la URL por primera vez) en Webhook secret. - Pon Environment en
test, paga una factura y confirma el pago de prueba en la página de SnapEX Pay; la factura debería pasar a Paid. Después vuelve alive.
Ajustes
| API key | Del panel de SnapEX Pay → API keys, permisos invoices.read e invoices.write. |
|---|---|
| Webhook secret | El secreto whsec_… del endpoint de webhook. Los webhooks sin firma o con firma incorrecta se rechazan. |
| Network fee paid by | merchant: el cliente paga el importe de la factura, y la comisión se descuenta de lo que recibes. customer: la comisión de SnapEX Pay y la comisión de red se suman encima. |
| Payment window, minutes | 1–1440, por defecto 60. |
| USD per 1 invoice currency | 1 si Paymenter factura en USD; para EUR a 1.08 USD introduce 1.08. |
| Environment | live o test. |
| Partner ID | Opcional: el Partner ID del integrador que configuró el módulo (programa de referidos de SnapEX Pay). Déjalo vacío si lo instalas tú mismo. |
| API URL | Déjalo como está. |
Preguntas
La pasarela no aparece en Admin → Gateways.
Revisa la ruta extensions/Gateways/SnapexPay/SnapexPay.php (distingue mayúsculas y minúsculas) y que el servidor web pueda leerla, y luego ejecuta composer dump-autoload -o && php artisan optimize:clear.
El cliente pagó pero la factura sigue sin pagar.
Revisa las entregas de webhooks en el panel de SnapEX Pay. 400 invalid signature significa que el secreto no coincide o que el reloj del servidor está desfasado; not_paid significa que en ese momento el pago aún no estaba confirmado, y la factura se liquida cuando llega el webhook invoice.paid.
El cliente pagó menos del importe de la factura.
Las facturas pagadas parcialmente no se acreditan automáticamente. Revisa el pago en el panel de SnapEX Pay y añade la transacción en Paymenter a mano.
¿Pueden varios sitios de Paymenter usar una sola cuenta de SnapEX Pay?
Cada sitio solo liquida sus propias facturas (se etiquetan con un hash de APP_URL), pero una cuenta de SnapEX Pay tiene una sola URL de webhook y la extensión registra los pagos solo por webhook. Así que solo el sitio configurado como webhook registra los pagos automáticamente.
Otras integraciones
¿Listo para aceptar cripto?
Crea una cuenta de comercio, obtén una clave API y conecta el módulo. 1% por pago, sin cuota mensual.