PHPackages                             epikoder/laravel-payment-gateway - 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. epikoder/laravel-payment-gateway

ActiveLibrary

epikoder/laravel-payment-gateway
================================

Extendable payment gateway to manage different gateways in your application

v1.0.4(5y ago)163MITPHP

Since Apr 29Pushed 4y ago1 watchersCompare

[ Source](https://github.com/epikoder/laravel-payment-gateway)[ Packagist](https://packagist.org/packages/epikoder/laravel-payment-gateway)[ Docs](https://github.com/epikoder)[ RSS](/packages/epikoder-laravel-payment-gateway/feed)WikiDiscussions master Synced 1w ago

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

Laravel Payment Gateway
=======================

[](#laravel-payment-gateway)

#### Extendible payment gateway to manage different gateways in your application.

[](#extendible-payment-gateway-to-manage-different-gateways-in-your-application)

This package allows you to manage different payment providers within your application with ease. and provides base to add any payment provider on-the-fly.

### Default providers to be implemented

[](#default-providers-to-be-implemented)

> Stripe

> Paypal

> Paystack

Getting started
---------------

[](#getting-started)

`composer require epikoder/laravel-payment-gateway`

To add a payment provider extend the PaymentProvider class

`Epikoder\LaravelPaymentGateway\Abstract\PaymentProvider`

### Order | Package model

[](#order--package-model)

Implement the interface `Epikoder\LaravelPaymentGateway\Contracts\OrderInterface`

```
class Order extends Model implements \Epikoder\LaravelPaymentGateway\Contracts\OrderInterface
{
 // implements the required methods
}

```

Config
------

[](#config)

### Add a provider

[](#add-a-provider)

```
 "providers" => [
    'paystack' => \Epikoder\LaravelPaymentGateway\Gateways\Paystack::class,
 ],

```

To add or use your own custom provider see the config

Add a provider setting

```
"settings" => [
        "paystack" => [
            'sk_key' => 'sk_test_6f220edf6029757d56079cb33b047a15da7b3bfd',
                'pk_key' => 'pk_test_e8d8ffad357f6e7958b799ef96fb97965b13b959',
                'currency' => Currencies::US_DOLLAR,
            'channels' => [
                'card', 'bank'
            ],
            'image' => 'https://tukuz.com/wp-content/uploads/2020/10/paystack-logo-vector.png',
        ]
    ],

```

### Disable provider from customer access

[](#disable-provider-from-customer-access)

```
'disabled' => ['stripe',],

```

### Live and Test mode

[](#live-and-test-mode)

Using live and test mode feature

```
"settings" => [
        "paystack" => [
            "mode" => "test",
            'live' => [
                'sk_key' => 'sk_test_6f220edf6029757d56079cb33b047a15da7b3bfd',
                'pk_key' => 'pk_test_e8d8ffad357f6e7958b799ef96fb97965b13b959',
                'currency' => Currencies::US_DOLLAR,
            ],
            'test' => [
                'sk_key' => 'sk_test_6f220edf6029757d56079cb33b047a15da7b3bfd',
                'pk_key' => 'pk_test_e8d8ffad357f6e7958b799ef96fb97965b13b959',
                'currency' => Currencies::NAIRA,
            ],
            'channels' => [
                'card', 'bank'
            ],
            'image' => 'https://tukuz.com/wp-content/uploads/2020/10/paystack-logo-vector.png',
        ]
    ],

```

### URLs and Routes

[](#urls-and-routes)

The values of the urls should be valid routes to your controller see [Complete an order](#complete-an-order)

```
 "returnUrl" => 'checkout/success',   // offsite return url
 "responseUrl" => "checkout/response",

```

Usage
-----

[](#usage)

### Process an order

[](#process-an-order)

```
...
use Epikoder\LaravelPaymentGateway\PaymentService;
...
{
    public function pay(PaymentService $paymentService)
    {
        /** @var \Illuminate\Http\Response */
        $res = $paymentService->init('provider', request()->user()->toArray)
            ->process(Order); // Order must implement order interface

        return $res;  // $res is either a redirect or provider response
    }
}

```

Complete an order
-----------------

[](#complete-an-order)

### Simple method

[](#simple-method)

```
class PayController extends \Epikoder\LaravelPaymentGateway\PaymentGatewayController {

  public function response() // Handles normal response
    {
     $content = $this->responseData;
     if (!$content) {
      // No data
     }

     return \Illuminate\Http\Response($content);
    }

 public function callbackResponse() // Handles off-site-response
    {
        $result = $this->paymentService->complete($this->provider);
        if ($this->provider->identifier() == 'paystack) {
            log_paystack_transactions($result);
        }

        if (!$result->successful) {
            return view('payment.error');
        }

        return view('payment.success');
    }
}

```

### Custom Method

[](#custom-method)

```
{
  public function response() // Handles normal response
    {
     $content = session()->pull(config("gateway.responseUrl"));
     return \Illuminate\Http\Response($content);
    }

    public function callbackResponse() // Handles off-site-response
    {
        $result = $this->paymentService->complete($this->paymentService->callbackProvider());
        if ($result->provider->identifier() == 'paystack) {
            log_paystack_transactions($result);
        }

        if (!$result->successful) {
            return view('payment.error');
        }

        return view('payment.success');
    }
}

```

Transaction verification is handled by the PaymentProvider class.

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

[](#contributing)

Thank you for considering contributing to this package. :)

License
-------

[](#license)

The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

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 ~6 days

Total

5

Last Release

1821d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/39457512?v=4)[Efedua Believe](/maintainers/epikoder)[@epikoder](https://github.com/epikoder)

---

Top Contributors

[![epikoder](https://avatars.githubusercontent.com/u/39457512?v=4)](https://github.com/epikoder "epikoder (33 commits)")

---

Tags

laravelpaymentslaravelgatewaypayment gatewaylaravel payment gatewaylaravel-paymentlaravel-gatewayepikoder

### Embed Badge

![Health badge](/badges/epikoder-laravel-payment-gateway/health.svg)

```
[![Health](https://phpackages.com/badges/epikoder-laravel-payment-gateway/health.svg)](https://phpackages.com/packages/epikoder-laravel-payment-gateway)
```

###  Alternatives

[shetabit/payment

Laravel Payment Gateway Integration Package

944330.1k5](/packages/shetabit-payment)

PHPackages © 2026

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