PHPackages                             abel-olguin/laravel-openpay-plans - 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. [Payment Processing](/categories/payments)
4. /
5. abel-olguin/laravel-openpay-plans

ActiveLibrary[Payment Processing](/categories/payments)

abel-olguin/laravel-openpay-plans
=================================

Librería para manejar planes con Laravel y la plataforma de pago Openpay.

0.1.6(11mo ago)015MITPHPPHP ^8.1CI passing

Since Mar 9Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/abel-olguin/laravel-openpay-plans)[ Packagist](https://packagist.org/packages/abel-olguin/laravel-openpay-plans)[ RSS](/packages/abel-olguin-laravel-openpay-plans/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (8)Used By (0)

Laravel [Openpay](https://www.openpay.mx/) plans
================================================

[](#laravel-openpay-plans)

Laravel [Openpay](https://www.openpay.mx/) plans es una librería de laravel para gestionar las suscripciones de openpay.

Instalación
-----------

[](#instalación)

```
composer require abel-olguin/laravel-openpay-plans

php artisan vendor:publish --provider="AbelOlguin\OpenPayPlans\PlansProvider"

php artisan migrate
```

Esto generará los archivos necesarios para el funcionamiento: vistas, config, traducciones y migraciones.

De igual manera necesitas configurar tu archivo `.env` con los siguientes datos de openpay:

```
PLANS_OPEN_ID=TU_ID_DE_OPENPAY
PLANS_OPEN_API_KEY=TU_API_KEY_DE_OPENPAY
PLANS_OPEN_COUNTRY=TU_CODIGO_DE_CIUDAD_DE_OPENPAY #(MEXICO ES MX)
PLANS_OPEN_PRODUCTION=true #(Si es true se generaran cargos reales)

```

En el modelo de usuarios debes usar el trait `HasPlans`:

```
namespace App\Models;
use AbelOlguin\OpenPayPlans\Models\Traits\HasPlans;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasPlans;
}
```

Para usar las rutas por defecto puedes usar:

```
\AbelOlguin\OpenPayPlans\Routes\Plans::routes();
```

Si prefieres hacer tus propias rutas te recomiendo usar el trait `\AbelOlguin\OpenPayPlans\Controllers\Traits\Subscriptions`

```
use AbelOlguin\OpenPayPlans\Controllers\Traits\Subscriptions;

class SubscriptionController
{
    use Subscriptions;
    ...
}
```

Middleware
----------

[](#middleware)

Esta librería tiene dos middleware disponibles los cuales se pueden usar de la siguiente forma

```
Route::middleware('plans:pro,trial')->get();
```

El middleware dejará pasar a cualquier usuario que tenga el plan **pro** o el plan **trial**

```
Route::middleware('plans.active')->get();
```

El middleware dejará pasar a cualquier usuario que tenga un plan activo, sea cual sea.

Gates
-----

[](#gates)

Hay tres gates disponibles los cuales se pueden usar de la siguiente forma:

```
use Illuminate\Support\Facades\Gate;
if (!Gate::forUser($user)->allows('has-plan', 'trial')) {
  abort(403);
}
```

1. El gate responderá con un error 403 en caso de que el usuario no tenga el plan **trial**

```
use Illuminate\Support\Facades\Gate;
if (!Gate::forUser($user)->allows('has-active-plan')) {
  abort(403);
}
```

2. El gate responderá con un error 403 en caso de que el usuario no tenga un plan activo

```
use Illuminate\Support\Facades\Gate;
if (!Gate::forUser($user)->allows('create-plan')) {
  abort(403);
}
```

3. El gate responderá con un error 403 en caso de que el usuario no pueda crear un plan, esto se determina usando la configuracion, si la llave `allow_multiple_plans` es `true`, permitira que el usuario pueda seguir suscribiendose a planes si, por el contrario, es `false` significa que el usuario solo puede suscribirse a un plan y si intenta suscribirse a otros no podra hacerlo, de igual forma este gate válida que el usuario no se suscriba al mismo plan.

Comandos
--------

[](#comandos)

Hay 3 comandos disponibles:

1. Una vez que creas tus planes en base de datos deberás usar el comando: ```
     php artisan plans:generate
    ```
2. Para eliminar todos los planes puedes usar: ```
    php artisan plans:delete
    ```
3. Para desactivar las suscripciones que no han sido pagadas, fueron canceladas o ya terminaron (pensado para ser usado en un schedule): ```
    php artisan plans:check
    ```

Contributing
------------

[](#contributing)

Los PR son bienvenidos :)

License
-------

[](#license)

[MIT](https://choosealicense.com/licenses/mit/)

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance50

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Every ~73 days

Recently: every ~108 days

Total

7

Last Release

358d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e54baf59b680321f7915fdff95be0a132782f5cdc921e25f65b84479e636b760?d=identicon)[abel-olguin](/maintainers/abel-olguin)

---

Top Contributors

[![abel-olguin](https://avatars.githubusercontent.com/u/8931845?v=4)](https://github.com/abel-olguin "abel-olguin (11 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/abel-olguin-laravel-openpay-plans/health.svg)

```
[![Health](https://phpackages.com/badges/abel-olguin-laravel-openpay-plans/health.svg)](https://phpackages.com/packages/abel-olguin-laravel-openpay-plans)
```

###  Alternatives

[laraveldaily/laravel-invoices

Missing invoices for Laravel

1.5k1.3M4](/packages/laraveldaily-laravel-invoices)[musahmusah/laravel-multipayment-gateways

A Laravel Package that makes implementation of multiple payment Gateways endpoints and webhooks seamless

852.2k1](/packages/musahmusah-laravel-multipayment-gateways)[karson/mpesa-php-sdk

172.2k](/packages/karson-mpesa-php-sdk)

PHPackages © 2026

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