PHP code example of ferotres / redsys-bundle

1. Go to this page and download the library: Download ferotres/redsys-bundle library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

ferotres / redsys-bundle example snippets

 php
class PaymentController extends AbstractController
{

    /** @var RedsysRedirection  */
    private $redsysRedirection;

    /**
     * DefaultController constructor.
     * @param RedsysRedirection $redsysRedirection
     */
    public function __construct(RedsysRedirection $redsysRedirection)
    {
        $this->redsysRedirection = $redsysRedirection;
    }
    
    public function pay(int $optionalIdOffer)
    {
        $paymentOrder = PaymentOrderBuilder::create()
            ->toApp('sample1')
            ->withAmount(1000)
            ->withCurrency('EUR')
            ->withLocale('ES')
            ->withPaymentHolder('Juan Alvarez')
            ->withDescription('Product Test description')
            ->withOrder('201901015001')
            // This params is used for success/error callbacks and notification response
            ->addUserParams(['optionalIdOffer' => $optionalIdOffer])
            // For use a secure terminal 
            ->usingCes(true) 
            ->build();
            
         /** @var RedsysOrder $redsysOrder */
         $redsysOrder = $this->redsysRedirection->createPayment($paymentOrder);
         
         return $this->render('Acme/pay.html.twig', ['redsysOrder' => $redsysOrder]);
    }
    
}
 php
/** @var RedsysOrder $redsysOrder */
$redsysOrder = $this->redsysRedirection->createAuthorization($paymentOrder);
 php
// The cancelAuthorization do a curl to redsys, template is not needed.   
/** @var RedsysOrder $redsysOrder */
$redsysOrder = $this->redsysRedirection->cancelAuthorization($paymentOrder);
 php
// src/EventListener/PaymentResponseHandler.php
class PaymentResponseHandler
{
    /**
     * @param RedsysResponseSuccessEvent $redsysResponseEvent
     */
    public function onPaymentSuccess(RedsysResponseSuccessEvent $redsysResponseEvent)
    {
        $redsysResponse = $redsysResponseEvent->redsysResponse();
        
        $order = $redsysResponse->order();
        $authCode = $redsysResponse->authCode();
        // This use __call magic method
        $optionalIdOffer = $redsysResponseEvent->getOptionalIdOffer()
        
        $valid = $redsysResponseEvent->isValidated();
        
        // TODO: Yout bussines logic
        
        // By default, If in this function something throw and exception, RedsysResponseFailedEvent will be triggered.

    }

    /**
     * @param RedsysResponseFailedEvent $responseFailedEvent
     */
    public function onPaymentError(RedsysResponseFailedEvent $responseFailedEvent)
    {
       $redsysResponse = $redsysResponseEvent->redsysResponse();
       
       // This use __call magic method
       $optionalIdOffer = $redsysResponseEvent->getOptionalIdOffer();
       
       $exception = $responseFailedEvent->exception();
       
       $valid = $redsysResponseEvent->isValidated();
       
       // TODO: Yout bussines logic
    }
}