dev-master
9999999-devThis is Symfony 3.3+ P24 Bundle.
MIT
The Requires
- php ^5.5.9 || ^7.0
- guzzlehttp/guzzle ^6.3
v1.1.0
1.1.0.0This is Symfony 3.3+ P24 Bundle.
MIT
The Requires
- php ^5.5.9 || ^7.0
- guzzlehttp/guzzle ^6.3
This is Symfony 3.3+ P24 Bundle.
This is superb easy to use Przelewy24 Bundle with bulit-in Symfony Events., (*1)
composer require allset/przelewy24-bundle
and then update your AppKernel.php
:, (*2)
// ... class AppKernel extends Kernel // ... public function registerBundles() { $bundles = [ // ... new Allset\Przelewy24Bundle\AllsetPrzelewy24Bundle(), // ... ]; }
Than add to your routing.yml
file:, (*3)
#app/config/routing.yml allset_przelewy24: resource: "@AllsetPrzelewy24Bundle/Resources/config/routing.xml"
If you want to have access to Test Tools add this to routing_dev.yml
:, (*4)
#app/config/routing_dev.yml allset_przelewy24: resource: "@AllsetPrzelewy24Bundle/Resources/config/routing_dev.xml"
Symfony 3.3++ (becouse bundle is using Symfony Service Autowire)
Guzzle ^6.3 (already included in composer.json), (*5)
Add to your config folowing lines:, (*6)
#app/config/config.yml allset_przelewy24: sandbox: true #or false merchant_id: <your-merchant-id> crc_key: <your-crc>
In your controller., (*7)
// ... use Allset\Przelewy24Bundle\Factory\ProcessFactory; use Allset\Przelewy24Bundle\Model\Payment; // ... class AppController extends Controller { // ... public function processAction(ProcessFactory $processFactory) { $order = // ... - You are creating your order here $payment = new Payment(); $payment ->setCurrency('PLN') ->setSessionId($order->geToken()) //VERY IMPORTANT some unique id from your order in your db ->setAmount($order->getAmount()) ->setDescription($order->getDesc()) ->setEmail($order->getEmail()) ->setReturnUrl($this->generateUrl('return', [], 0)); // use following syntax to genreate absolute url $processFactory->setPayment($payment); $url = $processFactory->createAndGetUrl(); return $this->redirect($url); } // ... }
#app/config/services.yml AppBundle\EventListener\Przelewy24\PaymentSuccessListener: tags: - { name: kernel.event_listener, event: przelewy24.event.payment_success }
namespace AppBundle\EventListener\Przelewy24; use Allset\Przelewy24Bundle\Event\PaymentEventInterfce; class PaymentSuccessListener { // .. public function onPrzelewy24EventPaymentSuccess(PaymentEventInterfce $event) { $token = $event->getPayment()->getSessionId(); // .. } }
To access tests you have to add @AllsetPrzelewy24Bundle/Resources/config/routing_dev.xml
to your rounting_dev.yml
file. (check out Instaltion chapter)., (*8)
After that you have access to allset_przelewy24_test
route or simpler go to /p24-test
path and checkout the results., (*9)
Due to Przelewy24 native API you are unable to get success response on your localhost, but you can simulate it with Simulating Payment Success Tool., (*10)
To access simulating you have to add @AllsetPrzelewy24Bundle/Resources/config/routing_dev.xml
to your rounting_dev.yml
file. (check out Instaltion chapter)., (*11)
After that you can simply go to /p24-fake-success/{sessionId}
path or redirect to route allset_przelewy24_fake_success
to make bundle to trigger przelewy24.event.payment_success
event., (*12)
This is Symfony 3.3+ P24 Bundle.
MIT
This is Symfony 3.3+ P24 Bundle.
MIT