webgriffe / sylius-nexi-plugin
Nexi payment plugin for Sylius.
Installs: 25 834
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 5
Type:sylius-plugin
Requires
- php: ^8.1
- guzzlehttp/psr7: ^1.6 || ^2.5
- payum/payum: ^1.6
- php-http/message-factory: ^1.0
- psr/log: ^2.0
- sylius/sylius: ^1.12
- symfony/webpack-encore-bundle: ^1.15
- webgriffe/lib-quipago: ^3.0
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ^1.6
- dbrekelmans/bdi: ^1.1
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.0.0
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- phpspec/phpspec: ^7.2
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^1.8.1
- phpstan/phpstan-doctrine: 1.3.16
- phpstan/phpstan-strict-rules: ^1.3.0
- phpstan/phpstan-webmozart-assert: ^1.2.0
- phpunit/phpunit: ^9.6 || ^10.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- robertfausk/behat-panther-extension: ^1.1
- sylius-labs/coding-standard: ^4.2
- sylius-labs/suite-tags-extension: ^0.2
- symfony/browser-kit: ^5.4 || ^6.0
- symfony/debug-bundle: ^5.4 || ^6.0
- symfony/dotenv: ^5.4 || ^6.0
- symfony/flex: ^2.2.2
- symfony/intl: ^5.4 || ^6.0
- symfony/web-profiler-bundle: ^5.4 || ^6.0
- vimeo/psalm: 4.27.0
Suggests
- webgriffe/payum-lock-request-extension-bundle: A Payum extension providing the ability to lock concurrent requests.
This package is auto-updated.
Last update: 2024-12-15 14:56:18 UTC
README
Sylius Nexi Plugin
The SyliusNexiPlugin provides an integration between Sylius and Nexi XPay payment gateway. This plugin implements the Hosted Payment Page integration method.
Note! This plugin is only compatible with the Nexi configuration which allows only one payment per request. It is therefore not possible to retry the payment several times on the Nexi checkout, so make sure that your Nexi gateway is configured to not allow payment retry (you'll have to ask to Nexi customer care for this)!
Installation
-
Run
composer require webgriffe/sylius-nexi-plugin
-
Add
Webgriffe\SyliusNexiPlugin\WebgriffeSyliusNexiPlugin::class => ['all' => true]
to yourconfig/bundles.php
. -
(Optional) It's suggested to also install the Payum Lock Request Extension Bundle:
composer require webgriffe/payum-lock-request-extension-bundle
and add
Webgriffe\PayumLockRequestExtensionBundle\WebgriffePayumLockRequestExtensionBundle::class => ['all' => true]
to yourconfig/bundles.php
. This Payum extension avoids issues when concurrent requests are made by the buyer and the Nexi gateway for the same payment.
Configuration
Go in your Sylius admin panel and create a new payment method. Choose Nexi Gateway
as the payment gateway and fill the required fields.
You can also enable the Sandbox mode if you want to test the integration with the Nexi test environment.
Contributing
Running plugin tests
-
PHPUnit
vendor/bin/phpunit
-
PHPSpec
vendor/bin/phpspec run
-
Behat (non-JS scenarios)
vendor/bin/behat --strict --tags="~@javascript"
-
Behat (JS scenarios)
-
Start Headless Chrome:
google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1
- Install SSL certificates (only once needed) and run test application's webserver on
127.0.0.1:8080
:
symfony server:ca:install APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
- Run Behat:
vendor/bin/behat --strict --tags="@javascript"
-
Static Analysis
-
Psalm
vendor/bin/psalm
-
PHPStan
vendor/bin/phpstan analyse -c phpstan.neon -l max src/
-
-
Coding Standard
vendor/bin/ecs check src
Opening Sylius with your plugin
-
Using
test
environment:(cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load) (cd tests/Application && APP_ENV=test bin/console server:run -d public)
-
Using
dev
environment:(cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load) (cd tests/Application && APP_ENV=dev bin/console server:run -d public)
License
This plugin is under the MIT license. See the complete license in the LICENSE file.
Credits
Developed by Webgriffe®.