nowo-tech / redsys-php
Clean-room PHP SDK for the public Redsys TPV Virtual protocol (HMAC signing, redirect, REST). PHP 8.3+ and FrankenPHP worker-safe.
Fund package maintenance!
Requires
- php: >=8.3
- ext-curl: *
- ext-json: *
- ext-openssl: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- nowo-tech/phpstan-frankenphp: ^1.1
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5
- rector/rector: ^2.0
This package is auto-updated.
Last update: 2026-08-21 19:02:03 UTC
README
⭐ Found this useful? Install from Packagist · Give it a star on GitHub so more developers can find it.
Clean-room PHP SDK for the public Redsys TPV Virtual protocol (HMAC signing, redirect form, REST SIS). Namespace Nowo\Redsys\. License MIT. Release 1.0.0.
This is an independent implementation written from publicly documented algorithms and endpoints. It does not redistribute Redsys proprietary PHPL_* library source. “Redsys” is a trademark of its respective owners.
This library is FrankenPHP worker mode friendly: RedirectForm returns an HTML string and never calls echo or exit.
Documentation
- Installation
- Configuration
- Sandbox: credenciales y tarjetas de prueba
- PSR evaluation (REQ-CS-007)
- Usage
- Contributing
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- Spec Kit
- Coverage
- GitHub CI
- Branching
- FrankenPHP demo
- Code of Conduct
Quick start
use Nowo\Redsys\Currency; use Nowo\Redsys\Environment; use Nowo\Redsys\Merchant; use Nowo\Redsys\MerchantParameters; use Nowo\Redsys\RedirectForm; use Nowo\Redsys\SignatureVersion; use Nowo\Redsys\TransactionType; $merchant = new Merchant( merchantCode: '999008881', terminal: '1', secretKey: getenv('REDSYS_SECRET_KEY') ?: '', environment: Environment::Test, signatureVersion: SignatureVersion::HmacSha512V2, ); $params = MerchantParameters::create() ->forMerchant($merchant) ->amount(145) ->order('1444904795') ->currency(Currency::Eur) ->transactionType(TransactionType::Authorization) ->merchantUrl('https://example.test/redsys/notify') ->urlOk('https://example.test/ok') ->urlKo('https://example.test/ko'); $html = RedirectForm::forMerchant($merchant, $params);
Compatibility
PHP 8.3+ with extensions curl, json, openssl.
Installation
composer require nowo-tech/redsys-php:^1.0
require_once 'vendor/autoload.php';
Tests and coverage
composer install
composer test
composer test-coverage
Clover gate: ≥ 99% Lines on src/ (see docs/COVERAGE.md).
make qa make release-check
Develop
make up && make install && make qa make setup-hooks
License
MIT — see LICENSE.
Independent clean-room implementation of the public Redsys TPV Virtual protocol. Does not redistribute Redsys proprietary PHPL_* source. “Redsys” is a trademark of its respective owners.
