1. Go to this page and download the library: Download creagia/laravel-redsys 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/ */
creagia / laravel-redsys example snippets
public function createPaymentAndRedirect()
{
$redsysRequest = $yourModel->createRedsysRequest(
productDescription: 'Product description',
payMethod: PayMethod::Bizum,
);
return $redsysRequest->redirect();
}
return [
/**
* Used to define the service URL. Possible values 'test', 'production' or 'local'.
*
* It's recommended to use 'local' during your development to enable a local gateway to test your
* application without need to expose it.
*/
'environment' => env('REDSYS_ENVIRONMENT'),
/**
* Values sent to Redsys.
*/
'tpv' => [
'terminal' => env('REDSYS_TERMINAL', 1),
'currency' => \Creagia\Redsys\Enums\Currency::EUR,
'merchantCode' => env('REDSYS_MERCHANT_CODE'), // Default test code: 999008881
'key' => env('REDSYS_KEY'), // Default test key: sq7HjrUOBfKmC576ILgskD5srU870gJ7
],
/**
* Prefix used by the package routes. 'redsys' by default.
*/
'routes_prefix' => env('REDSYS_ROUTE_PREFIX', 'redsys'),
/**
* Route names for successful and unsuccessful confirm pages. Redsys redirects to these routes
* after the payment is finished. By default, this package provides two neutral views.
*/
'successful_payment_route_name' => env('REDSYS_SUCCESSFUL_ROUTE_NAME', null),
'unsuccessful_payment_route_name' => env('REDSYS_UNSUCCESSFUL_ROUTE_NAME', null),
/**
* Use an automatic prefix for the order number with the current year and month.
*/
'order_num_auto_prefix' => true,
/**
* Redsys order number should be unique. Here you can set an order number prefix if you need it.
* This prefix must be an integer number.
*/
'order_num_prefix' => env('REDSYS_ORDER_NUM_PREFIX', 0),
];
use Creagia\LaravelRedsys\Concerns\CanCreateRedsysRequests;
use Creagia\LaravelRedsys\Contracts\RedsysPayable;
class YourModel extends Model implements RedsysPayable
{
use CanCreateRedsysRequests;
public function getTotalAmount(): int
{
return 199_99;
}
public function paidWithRedsys(): void
{
// Notify user, change status to paid, ...
}
}
use Creagia\LaravelRedsys\RequestBuilder;
$redsysRequestBuilder = RequestBuilder::newRequest(
new \Creagia\Redsys\Support\RequestParameters(
transactionType: \Creagia\Redsys\Enums\TransactionType::Autorizacion,
productDescription: 'Description',
amountInCents: 123_12,
currency: Currency::EUR,
payMethods: \Creagia\Redsys\Enums\PayMethod::Card,
)
);
use Creagia\Redsys\Enums\PayMethod;
public function redirection()
{
$redsysRequest = $yourModel->createRedsysRequest(
productDescription: 'Product description',
payMethod: PayMethod::Card,
);
return $redsysRequest->redirect();
}
use Creagia\Redsys\Enums\Currency;
use Creagia\Redsys\Enums\TransactionType;
use Creagia\LaravelRedsys\RequestBuilder;
use Illuminate\Database\Eloquent\Model;
public function cancellation(Model $yourModel)
{
$redsysRequest = RequestBuilder::newRequest(new RequestParameters(
amountInCents: $yourModel->getTotalAmount(),
currency: Currency::EUR,
order: '1446068581',
transactionType: TransactionType::Anulacion,
))->associateWithModel($yourModel);
return $redsysRequest->post();
}
use Creagia\LaravelRedsys\Concerns\InteractsWithRedsysCards;
class Team extends Model
{
use InteractsWithRedsysCards;
...
}
use Creagia\Redsys\Enums\CofType;
use Creagia\Redsys\Enums\PayMethod;
/**
* Use this example to associate the request and card easily to Eloquent models
*/
public function initialRequest()
{
$redsysRequest = $yourProductModel->createRedsysRequest(
productDescription: 'Product description',
payMethod: PayMethod::Card,
)->requestingCardToken(
CofType::Recurring
)->storeCardOnModel(
$yourPayingModel // User, Team, ...
);
return $redsysRequest->redirect();
}
/**
* Use this example for a custom request, optionally associating the request to Eloquent models
*/
public function initialCustomRequest()
{
$redsysRequest = RequestBuilder::newRequest(new RequestParameters(
amountInCents: 19_99,
currency: Currency::EUR,
transactionType: TransactionType::Autorizacion,
))->associateWithModel(
$yourProductModel
)->requestingCardToken(
CofType::Recurring
)->storeCardOnModel(
$yourPayingModel // User, Team, ...
);
return $redsysRequest->redirect();
}
use Creagia\Redsys\Enums\Currency;
use Creagia\Redsys\Enums\TransactionType;
use Creagia\LaravelRedsys\RequestBuilder;
use Illuminate\Database\Eloquent\Model;
use Creagia\Redsys\Enums\CofType;
public function renewSubscription(Model $yourProductModel, Model $yourPayingModel)
{
$redsysCard = $yourPayingModel->redsysCards->last(); // User, Team, ...
$redsysRequest = RequestBuilder::newRequest(new RequestParameters(
amountInCents: $yourProductModel->getTotalAmount(),
currency: Currency::EUR,
transactionType: TransactionType::Autorizacion,
))
->associateWithModel(
$yourProductModel
)->usingCard(
CofType::Recurring,
$redsysCard,
);
return $redsysRequest->post();
}