PHPackages                             eseperio/ceca-omnipay - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. eseperio/ceca-omnipay

ActiveLibrary

eseperio/ceca-omnipay
=====================

CECA payment gateway implementation with omnipay

1.0.0(2y ago)0402↓50%MITPHP

Since Apr 10Pushed 2y agoCompare

[ Source](https://github.com/Eseperio/ceca-omnipay)[ Packagist](https://packagist.org/packages/eseperio/ceca-omnipay)[ RSS](/packages/eseperio-ceca-omnipay/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Omnipay: Ceca + Bizum
=====================

[](#omnipay-ceca--bizum)

**Ceca NON-OFFICIAL driver for the Omnipay PHP payment processing library**

[Omnipay](https://github.com/thephpleague/omnipay) is a framework agnostic, multi-gateway payment processing library for PHP 5.3+. This package implements RedSys (formerly Sermepa) support for Omnipay.

Installation
------------

[](#installation)

This is available via [Composer/Packagist](https://packagist.org/packages/eseperio/ceca-omnipay).

Run the following command to install it:

```
composer require eseperio/ceca-omnipay
```

Basic Usage
-----------

[](#basic-usage)

In order to process a payment, you will need to create a `Gateway` with your credentials, and then create a `PurchaseRequest` and send it to the gateway.

### Creating gateway

[](#creating-gateway)

```
$gateway = Omnipay::create('Ceca');

$gateway->setMerchantId('your_merchant_id');
$gateway->setTerminalId('your_terminal_id');
$gateway->setAcquirerBin('your_acquirer_bin');
$gateway->setEncryptionKey('your_encryption_key');
$gateway->setTestMode(true); // skip this line to use production mode or set it to false
// IMPORTANT: this gateway use omnipay support for currency, so you must set the currenty
// using its ISO name instead of the currency code (978).
$gateway->setCurrency('EUR');
```

### Sending purchase request

[](#sending-purchase-request)

```
$response = $gateway->purchase();
    ->setTransactionId('your_transaction_id')
    ->setAmount('10.00')
    ->setDescription('your_description')
    ->setURL_OK('https://yourdomain.com/ok')
    ->setURL_NOK('https://yourdomain.com/nok');

/**
 * @var $response \Omnipay\Ceca\Message\PurchaseResponse
 */
$response = $purchaseRequest->send();
if ($response->isRedirect()) {
    $response->redirect();
} else {
    Yii::error('Payment request failed', 'omnipay');
    Yii::error($response->getMessage(), 'omnipay');
    throw new Exception($response->getMessage());
}
```

This will redirect user to the payment gateway if the request is successful. If not, an exception will be thrown.

Then, if user process payment, the gateway will redirect user to the URL\_OK or URL\_NOK you provided.

```
IMPORTANT: URL_OK and URL_NOK are not valid for order confirmation. You must use the notification URL to confirm the order.

```

### Handling notification

[](#handling-notification)

In your application, you must create a route to handle the notification. This route will be called by the payment gateway to confirm the order. This library implements AcceptNotification to handle this

```
    $gateway = Omnipay::create('Ceca');
    $gateway->setMerchantId('your_merchant_id');
    [...] // same settings as before

    $notification = $gateway->acceptNotification();
    if ($notification->getTransactionStatus() == NotificationInterface::STATUS_COMPLETED) {
            // Mark your order as paid
            return;
        } else {
            throw new \Exception($notification->getMessage());
        }
```

### Simulating a notification from the gateway

[](#simulating-a-notification-from-the-gateway)

In order to improve testing of local development, you can simulate a notification from the gateway by calling the `send` method of the notification request.

```
    $gateway = Omnipay::create('Ceca');
    $gateway->setMerchantId('your_merchant_id');
    [...] // same settings as before

    $notification = $gateway->acceptNotification();
    $notification->send();
```

###  Health Score

23

↓

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 54.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

760d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1e173755eb4a5abae378ed4c8a8e8066f578c3192105c5e3f9b8ea3ef0086e7?d=identicon)[Eseperio](/maintainers/Eseperio)

---

Top Contributors

[![jdominguezpaz](https://avatars.githubusercontent.com/u/331798?v=4)](https://github.com/jdominguezpaz "jdominguezpaz (6 commits)")[![Eseperio](https://avatars.githubusercontent.com/u/5459366?v=4)](https://github.com/Eseperio "Eseperio (4 commits)")[![Alejandro-wzb](https://avatars.githubusercontent.com/u/153491184?v=4)](https://github.com/Alejandro-wzb "Alejandro-wzb (1 commits)")

### Embed Badge

![Health badge](/badges/eseperio-ceca-omnipay/health.svg)

```
[![Health](https://phpackages.com/badges/eseperio-ceca-omnipay/health.svg)](https://phpackages.com/packages/eseperio-ceca-omnipay)
```

###  Alternatives

[silverstripe/silverstripe-omnipay

SilverStripe Omnipay Payment Module

38106.0k15](/packages/silverstripe-silverstripe-omnipay)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
