mohammadmehrabani/iran-payment 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mohammadmehrabani/iran-payment

Composer 安装命令:

composer require mohammadmehrabani/iran-payment

包简介

a Laravel package to handle Internet Payment Gateways for Iran Banking System

README 文档

README

IranPayment for Laravel

a Laravel package to handle Internet Payment Gateways (IPGs) for Iran Banking System

Accepting Sadad (Melli), Saman (Sep), Zarinpal and more iranian payment gateways. Just use the IranPayment to receive payments directly on your website.

Latest Stable Version Total Downloads Latest Unstable Version License

Gateways

Gateways

Logo Gateway Description Available Tested Last Update
Sadad (Melli) بانک ملی (سداد) 2020/09/10
Saman (Sep) (سپ) بانک سامان 2020/08/03
Mellat (Behpardakht) (به پرداخت) بانک ملت 2024/08/18
Pay.ir پرداخت پی 2020/08/03
Zarinpal زرین پال 2020/08/03
Payping پی پینگ 2020/08/04
Novinopay نوینو پرداخت 2022/03/23
Digipay دیجی پی CPG ✓ BPG/BNPL ✓ 2024/06/24
--- Qeroun قرون - خرید امن با ایجاد توافق‌نامه - - -
--- Parsian (Pec) (پک) بانک پارسیان - - -
--- Pasargad (Pep) (پپ) بانک پاسارگاد - - -
--- Zibal زیبال - - -
--- IDPay آیدی پی - - -

Requirements

  • PHP >= 7.4
  • PHP ext-curl
  • PHP ext-json
  • PHP ext-soap
  • Laravel (or Lumen) >= 5.7

Installation

  1. Add the package to your composer file via the composer require command:

    $ composer require dena-a/iran-payment:^2.0

    Or add it to composer.json manually:

    "require": {
        "dena-a/iran-payment": "^2.0"
    }
  2. IranPayment's service providers will be automatically registered using Laravel's auto-discovery feature.

    Note: For Lumen you have to add the IranPayment service provider manually to: bootstrap/app.php :

    $app->register( Dena\IranPayment\IranPaymentServiceProvider::class);
  3. Publish the config-file and migration with:

    php artisan vendor:publish --provider="Dena\IranPayment\IranPaymentServiceProvider"
  4. After the migration has been published you can create the transactions-tables by running the migrations:

    php artisan migrate

Usage

New Payment:

use Dena\IranPayment\IranPayment;

// Default gateway
$payment = IranPayment::create();
// Select one of available gateways
$payment = IranPayment::create('sadad');
// Test gateway (Would not work on production environment)
$payment = IranPayment::create('test');
// Or use your own gateway
$payment = IranPayment::create(NewGateway::class);

$payment->setUserId($user->id)
        ->setAmount($data['amount'])
        ->setCallbackUrl(route('bank.callback'))
        ->ready();

return $payment->redirect();

Verify Payment:

use Dena\IranPayment\IranPayment;
use Dena\IranPayment\Exceptions\IranPaymentException;

try {
    $payment = IranPayment::detect()->confirm();
    $trackingCode = $payment->getTrackingCode();
    $statusText = $payment->getTransactionStatusText();
} catch (Dena\IranPayment\Exceptions\IranPaymentException $ex) {
    throw $ex;
}

Create your own payment gateway class

use Dena\IranPayment\Gateways\AbstractGateway;
use Dena\IranPayment\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
        ]);
    }
}

Contribute

Contributions are always welcome!

Support

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.

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 119
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 17
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-08-18