定制 mr-saman/universal-payment 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

mr-saman/universal-payment

最新稳定版本:v0.6.5

Composer 安装命令:

composer require mr-saman/universal-payment

包简介

Universal payment engine with fiat and crypto gateways

README 文档

README

⭐️ اگر این پکیج برات مفید بود، لطفاً بهش ستاره بده ⭐️

💳 Universal Payment Engine

🔌 Universal Modular Payment Package (Fiat + Crypto)

Latest Version Total Downloads Monthly Downloads License PHP Version

🇮🇷 فارسی

✅ معرفی

سیستم پرداخت جهانی / ایرانی یک هسته پرداخت ماژولار، مستقل و قابل توسعه برای Laravel است که امکان مدیریت:

  • 💴 پرداخت‌های ریالی (Redirect‑based)
  • 💎 پرداخت‌های ارز دیجیتال (Crypto)

را بدون وابستگی به Order، Cart یا User فراهم می‌کند.

پیش‌نیازها

  • PHP >= 8.1
  • Laravel >= 9.x

📦 نصب

composer require mr-saman/universal-payment

🔧 انتشار کانفیگ

php artisan vendor:publish --tag=universal-payment-config

⚙️ Payment Configuration

<?php

return [

  'default_currency' => 'IRR',
  
  'fx' => [
    'IRR_USDT' => 120000,
  ],
  
  'redirect' => [
    'enabled' => true,
  ],
  
  'verification_repository' => null,
  
  'gateways' => [
  
  'zarinpal' => [
    'class' => MrSaman\UniversalPayment\Gateways\ZarinpalGateway::class,
      'merchant_id' => env('ZARINPAL_MERCHANT_ID'),
      'sandbox' => env('ZARINPAL_SANDBOX', true),
      'callback_url' => env('ZARINPAL_CALLBACK_URL'),
  ],
  
  'idpay' => [
    'class' => MrSaman\UniversalPayment\Gateways\IdPayGateway::class,
      'api_key' => env('IDPAY_API_KEY'),
      'sandbox' => env('IDPAY_SANDBOX', true),
      'callback_url' => env('IDPAY_CALLBACK_URL'),
  ],
  
  'payping' => [
    'class' => MrSaman\UniversalPayment\Gateways\PayPingGateway::class,
      'api_key' => env('PAYPING_API_KEY'),
      'sandbox' => env('PAYPING_SANDBOX', false),
      'callback_url' => env('PAYPING_CALLBACK_URL'),
  ],
  
  'nextpay' => [
    'class' => MrSaman\UniversalPayment\Gateways\NextPayGateway::class,
      'api_key' => env('NEXTPAY_API_KEY'),
      'sandbox' => env('NEXTPAY_SANDBOX', true),
      'callback_url' => env('NEXTPAY_CALLBACK_URL'),
  ],
  
  'sep' => [
    'class' => MrSaman\UniversalPayment\Gateways\SepGateway::class,
      'terminal_id' => env('SEP_TERMINAL_ID'),
      'merchant_id' => env('SEP_MERCHANT_ID'),
      'callback_url' => env('SEP_CALLBACK_URL'),
  ],
  
  'mellat' => [
    'class' => MrSaman\UniversalPayment\Gateways\MellatGateway::class,
      'terminal_id' => env('MELLAT_TERMINAL_ID'),
      'username' => env('MELLAT_USERNAME'),
      'password' => env('MELLAT_PASSWORD'),
      'callback_url' => env('MELLAT_CALLBACK_URL'),
    ],
  ],
  
  'crypto' => [
    'usdt_trc20' => [
      'enabled' => true,
      'wallet' => env('USDT_TRC20_WALLET'),
    ],
  ],
  
  'callback' => [
    'success' => env('PAYMENT_CALLBACK_SUCCESS', '/payment/success'),
    'failed'  => env('PAYMENT_CALLBACK_FAILED', '/payment/failed'),
  ],
];

🚀 Initiate Payment

use MrSaman\UniversalPayment\Services\PaymentService;
use MrSaman\UniversalPayment\DTO\PaymentRequestDTO;
use MrSaman\UniversalPayment\ValueObjects\Money;
use MrSaman\UniversalPayment\Enums\Currency;

$money = new Money(250000, Currency::IRR);

$request = new PaymentRequestDTO(
  orderId: 'ORDER-1001',
  money: $money,
  gateway: 'zarinpal',
  callbackUrl: route('payment.callback'),
);

$result = app(PaymentService::class)->initiate($request);

✅ Verify Payment

$result = app(PaymentService::class)->verify(
              gateway: 'zarinpal',
              payload: request()->all()
);

🔐 Idempotency

Verification is idempotent by design. Duplicate verify calls will return cached results and will not dispatch events twice.

📡 Events

  • PaymentInitiated
  • PaymentSucceeded
  • PaymentFailed

🇺🇸 English

Introduction

Universal Payment Engine is a modular, contract‑driven Laravel payment core supporting both fiat (redirect‑based) and crypto payments.

📦 Installation

composer require mr-saman/universal-payment

Usage

$result = app(PaymentService::class)->initiate($request);
$result = app(PaymentService::class)->verify('zarinpal', request()->all());

Supported Gateways

Fiat

  • Zarinpal
  • IDPay
  • PayPing
  • NextPay
  • SEP
  • Mellat

Crypto

  • USDT (TRC20)

⭐ If you find this package useful, please give it a star.

💎 Universal Payment Engine
One Core. Infinite Gateways.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-22