descom / payment-gateway
Payment Gateway for Laravel App
3.9.0
2026-04-08 10:58 UTC
Requires
- php: ^8.4
- laravel/framework: ^12.0|^13.0
- league/omnipay: ^3.2
Requires (Dev)
- descom/omnipay-offline-dummy: ^1.5
- descom/omnipay-redsys: ^1.5
- friendsofphp/php-cs-fixer: ^3.75
- larastan/larastan: ^3.0
- orchestra/testbench: ^9.0|^10.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5
Suggests
- descom/omnipay-offline-dummy: Required to use demo the offline gateway
- descom/omnipay-redsys: Required to payment with Redsys
This package is auto-updated.
Last update: 2026-06-08 11:21:22 UTC
README
DPG is a package to Laravel that allows you to integrate the Payment Gateway into your application. This package use Omnipay to integrate the payment gateway.
Installation
composer require descom/payment-gateway
You can install any module to Omnipay, sample:
composer require descom/omnipay-offline-dummy
Usage
Create a Payment Method
<?php use Descom\Payment\Payment; use Omnipay\OfflineDummy\Gateway as OfflineDummyGateway; Payment::for(new OfflineDummyGateway()) ->name('Method Name') ->config([ 'return_url' => 'http:/www.localhost/checkout/success', 'cancel_url' => 'http:/www.localhost/checkout/cancel', 'request' => [ 'notify_url' => 'http:/api.localhost/payment/paymentdemo/notify', 'return_url' => 'http:/api.localhost/payment/{parameterId}/redirect', ], ])) ->transformer() // Optional, you can use your own transformer with interface Descom\Payment\Transformers\Transformer ->create('paymentdemo');
Access a Payment Method
<?php use Descom\Payment\Payment; $payment = Payment::find('paymentdemo');
Create Transaction
<?php use Descom\Payment\Payment; use Descom\Payment\Transaction; $payment = Payment::find('paymentdemo'); $transaction = Transaction::for($payment)->create([ 'amount' => '10.00', 'merchant_id' => 'order_1', ]);
You optionally can add a relation of a external model:
<?php use Descom\Payment\Payment; use Descom\Payment\Transaction; $payment = Payment::find('paymentdemo'); $transaction = Transaction::for($payment) ->model(Order::find(1)) ->create([ 'amount' => '10.00', 'merchant_id' => 'order_1', ]);
## Capture Notification Create Listener to events: - `Descom\Payment\Events\TransactionPaid` - `Descom\Payment\Events\TransactionDenied`