a Laravel package to handle Internet Payment Gateways for Iran Banking System
salamzadeh/pb-payment is a Laravel package for a laravel package to handle internet payment gateways for iran banking system.
It currently has 0 GitHub stars and 16 downloads on Packagist (latest version v1.2).
Install it with composer require salamzadeh/pb-payment.
Discover more Laravel packages by salamzadeh
or browse all Laravel packages to compare alternatives.
Last updated
a Laravel package to handle Internet Payment Gateways (IPGs) for Iran Banking System
Accepting Sadad (Melli), Pay.ir, Zarinpal and more iranian payment gateways. Just use the PBPayment to receive payments directly on your website.
Gateway | Description | Available | Tested | Last Update --- |-------------------------------------| --- | --- | --- Sadad (Melli) | بانک ملی (سداد) | ✓ | ✓ | 2021/12/22 Pay.ir | پرداخت پی | ✓ | ✓ | 2021/12/22 Zarinpal | زرین پال | ✓ | ✓ | 2023/01/03 Sizpay | سیز پی | ✓ | ✓ | 2023/01/03 Payping | پی پینگ | ✓ | - | 2021/12/22 Qeroun | قرون - خرید امن با ایجاد توافقنامه | - | - | - Saman (Sep) | (سپ) بانک سامان | ✓ | - | 2021/12/22 Mellat (Behpardakht) | (به پرداخت) بانک ملت | - | - | - Parsian (Pec) | (پک) بانک پارسیان | - | - | - Pasargad (Pep) | (پپ) بانک پاسارگاد | - | - | - Zibal | زیبال | - | - | -
Add the package to your composer file via the composer require command:
$ composer require salamzadeh/pb-payment:^1.2.0
Or add it to composer.json manually:
"require": {
"salamzadeh/pb-payment": "^1.2.0"
}
PBPayment's service providers will be automatically registered using Laravel's auto-discovery feature.
Note: For Lumen you have to add the PBPayment service provider manually to:
bootstrap/app.php:
$app->register( Salamzadeh\PBPayment\PBPaymentServiceProvider::class);
Publish the config-file and migration with:
php artisan vendor:publish --provider="Salamzadeh\PBPayment\PBPaymentServiceProvider"
After the migration has been published you can create the transactions-tables by running the migrations:
php artisan migrate
use Salamzadeh\PBPayment\PBPayment;
// Default gateway
$payment = PBPayment::create();
// Select one of available gateways
$payment = PBPayment::create('sadad');
// Test gateway (Would not work on production environment)
$payment = PBPayment::create('test');
// Or use your own gateway
$payment = PBPayment::create(NewGateway::class);
$payment->setUserId($user->id)
->setAmount($data['amount'])
->setCallbackUrl(route('bank.callback'))
->ready();
return $payment->redirect();
use Salamzadeh\PBPayment\PBPayment;
use Salamzadeh\PBPayment\Exceptions\PBPaymentException;
try {
$payment = PBPayment::detect()->confirm();
$trackingCode = $payment->getTrackingCode();
$statusText = $payment->getTransactionStatusText();
} catch (Salamzadeh\PBPayment\Exceptions\PBPaymentException $ex) {
throw $ex;
}
use Salamzadeh\PBPayment\Gateways\AbstractGateway;
use Salamzadeh\PBPayment\Gateways\GatewayInterface;
class NewGateway extends AbstractGateway implements GatewayInterface
{
public function getName(): string
{
return 'new-gateway';
}
public function initialize(array $parameters = []): self
{
parent::initialize($parameters);
return $this;
}
public function purchase(): void
{
// Send Purchase Request
$reference_number = 'xxxx';
$this->transactionUpdate([
'reference_number' => $reference_number,
]);
}
public function purchaseUri(): string
{
return 'http://new-gateway.com/token/xxxx';
}
public function verify(): void
{
$this->transactionVerifyPending();
// Send Payment Verify Request
$tracking_code = 'yyyy';
$this->transactionSucceed([
'tracking_code' => $tracking_code
]);
}
}
TODO:
Contributions are always welcome!
If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request.
The MIT License (MIT). Please see License File for more information.