[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Iyzico.php
<?php namespace App\Http\PaymentGateways\Gateways; use Exception; use Iyzipay\Options; use App\Enums\Activity; use App\Models\Currency; use Iyzipay\Model\Buyer; use Iyzipay\Model\Locale; use App\Enums\GatewayMode; use Iyzipay\Model\Address; use Iyzipay\Model\BasketItem; use App\Models\PaymentGateway; use Iyzipay\Model\PaymentGroup; use App\Services\PaymentService; use Iyzipay\Model\PayWithIyzico; use App\Services\PaymentAbstract; use Iyzipay\Model\BasketItemType; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Smartisan\Settings\Facades\Settings; use Iyzipay\Model\PayWithIyzicoInitialize; use Iyzipay\Model\Currency as IyzipayCurrency; use Iyzipay\Request\RetrievePayWithIyzicoRequest; class Iyzico extends PaymentAbstract { public bool $response = false; public string $baseUrl; public $options; public function __construct() { $paymentService = new PaymentService(); parent::__construct($paymentService); $this->paymentGateway = PaymentGateway::with('gatewayOptions')->where(['slug' => 'iyzico'])->first(); if (!blank($this->paymentGateway)) { $this->paymentGatewayOption = $this->paymentGateway->gatewayOptions->pluck('value', 'option'); $this->baseUrl = $this->paymentGatewayOption['iyzico_mode'] == GatewayMode::SANDBOX ? 'https://sandbox-api.iyzipay.com' : 'https://api.iyzipay.com'; $this->options = new Options(); $this->options->setApiKey($this->paymentGatewayOption['iyzico_api_key']); $this->options->setSecretKey($this->paymentGatewayOption['iyzico_secret_key']); $this->options->setBaseUrl($this->baseUrl); } } public function payment($order, $request): \Illuminate\Http\RedirectResponse { try { $company = Settings::group('company')->all(); $currencyCode = IyzipayCurrency::TL; $currencyId = Settings::group('site')->get('site_default_currency'); if (!blank($currencyId)) { $currency = Currency::find($currencyId); if ($currency) { $currencyCode = $currency->code; } } $request = new \Iyzipay\Request\CreatePayWithIyzicoInitializeRequest(); $request->setLocale(Locale::EN); $request->setConversationId($order->order_serial_no); $request->setPrice($order->subtotal); $request->setPaidPrice($order->total); $request->setCurrency($currencyCode); $request->setCallbackUrl(route('payment.success', ['order' => $order, 'paymentGateway' => 'iyzico'])); $request->setBasketId($order->order_serial_no); $request->setPaymentGroup(PaymentGroup::PRODUCT); $buyer = new Buyer(); $buyer->setId($order->order_serial_no); $buyer->setName($order->user->name); $buyer->setSurname($order->user->name); $buyer->setGsmNumber($order->user->phone); $buyer->setEmail($order->user->email); $buyer->setIdentityNumber($order->user->phone); $buyer->setLastLoginDate(date('Y-m-d h:i:s', strtotime($order->created_at))); $buyer->setRegistrationDate(date('Y-m-d h:i:s', strtotime($order->user?->created_at))); $buyer->setRegistrationAddress($order->address?->address); $buyer->setIp("12345678"); $buyer->setCity($company['company_state']); $buyer->setCountry("Turkey"); $buyer->setZipCode($company['company_zip_code']); $request->setBuyer($buyer); $shippingAddress = new Address(); $shippingAddress->setContactName($order->user->name); $shippingAddress->setCity($company['company_state']); $shippingAddress->setCountry("Turkey"); $shippingAddress->setAddress($order->address?->address); $shippingAddress->setZipCode($company['company_zip_code']); $request->setShippingAddress($shippingAddress); $billingAddress = new Address(); $billingAddress->setContactName($order->user?->name); $billingAddress->setCity($company['company_state']); $billingAddress->setCountry("Turkey"); $billingAddress->setAddress($order->address?->address); $billingAddress->setZipCode($company['company_zip_code']); $request->setBillingAddress($billingAddress); $basketItems = array(); $firstBasketItem = new BasketItem(); $firstBasketItem->setId($order->order_serial_no); $firstBasketItem->setName("Food Items"); $firstBasketItem->setCategory1("Food"); $firstBasketItem->setItemType(BasketItemType::PHYSICAL); $firstBasketItem->setPrice($order->subtotal); $basketItems[0] = $firstBasketItem; $request->setBasketItems($basketItems); $payment = PayWithIyzicoInitialize::create($request, $this->options); if ($payment->getPayWithIyzicoPageUrl()) { return redirect()->away($payment->getPayWithIyzicoPageUrl()); } else { return redirect()->route('payment.index', [ 'order' => $order, 'paymentGateway' => 'iyzico' ])->with('error', "JSON Data parsing error!"); } } catch (Exception $e) { Log::info($e->getMessage()); return redirect()->route('payment.index', ['order' => $order, 'paymentGateway' => 'iyzico'])->with( 'error', $e->getMessage() ); } } public function status(): bool { $paymentGateways = PaymentGateway::where(['slug' => 'iyzico', 'status' => Activity::ENABLE])->first(); if ($paymentGateways) { return true; } return false; } public function success($order, $request): \Illuminate\Http\RedirectResponse { try { if ($request['token']) { $token = new RetrievePayWithIyzicoRequest(); $token->setToken($request['token']); $paymentResponse = PayWithIyzico::retrieve($token, $this->options); if ($paymentResponse->getPaymentStatus() == "SUCCESS") { $paymentService = new PaymentService; $paymentService->payment($order, 'iyzico', $paymentResponse->getPaymentID()); return redirect()->route('payment.successful', ['order' => $order])->with('success', trans('all.message.payment_successful')); } else { return redirect()->route('payment.fail', [ 'order' => $order, 'paymentGateway' => 'iyzico' ])->with('error', $this->response['message'] ?? trans('all.message.something_wrong')); } } else { return redirect()->route('payment.fail', [ 'order' => $order, 'paymentGateway' => 'iyzico' ])->with('error', $this->response['message'] ?? trans('all.message.something_wrong')); } } catch (Exception $e) { Log::info($e->getMessage()); DB::rollBack(); return redirect()->route('payment.fail', [ 'order' => $order, 'paymentGateway' => 'iyzico' ])->with('error', $e->getMessage()); } } public function fail($order, $request): \Illuminate\Http\RedirectResponse { return redirect()->route('payment.index', ['order' => $order])->with( 'error', trans('all.message.something_wrong') ); } public function cancel($order, $request): \Illuminate\Http\RedirectResponse { return redirect()->route('home')->with('error', trans('all.message.payment_canceled')); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.86 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002