AnonSec Shell
Server IP : 172.67.168.138  /  Your IP : 216.73.216.227   [ Reverse IP ]
Web Server : Apache
System : Linux frog 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web13 ( 5017)
PHP Version : 8.3.31
Disable Function : NONE
Domains : 41 Domains
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/clients/client12/web13/web/ahelos/app/Http/Controllers/Frontend/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/clients/client12/web13/web/ahelos/app/Http/Controllers/Frontend/OrderController.php
<?php

namespace App\Http\Controllers\Frontend;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\{Order,  Cart,  User, Setting, Language, Product, CardPayment};
use LaravelLocalization;
use Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Cookie;
use Mail;
use DB;
use App\Mail\OrderMail;
use App\Mail\RegisterMail;

class OrderController extends Controller
{
    public function store(Request $request){
      $current_language = LaravelLocalization::getCurrentLocale();
      $request->validate([
        'fname' => ['required', 'string', 'max:255'],
        'lname' => ['required', 'string', 'max:255'],
        'phone' => ['required'],
        'email' => ['required', 'string', 'email', 'max:255'],
        'city'  => ['required', 'string'],
      ],
      [
        'required' => 'Задължително поле.',
      ]);





      $cart_products = Cart::where('token', Cookie::get('cartToken'))
                            ->with('product');

      $user_id = 0;
      if (Auth::user()) {
        // Ако потребителя е логнат
        $user_id = Auth::user()->id;
      }else{
        // АКо потребителя не е логнат
        $user = User::where('email', $request->input('email'))->first();
        // Проверяваме дали потребителя има създаден акаунт с този имейл
        if ($user) {
          // Ако има създаден акаунт с този имейл, взимаме id-то
          $user_id = $user->id;
        }else{
          // Ако няма потребител с този имейл, създаваме акаунт.
          $password = rand(1000, 9999);
          $data_user = array(
          'fname'    => $request->input('fname'),
          'lname'    => $request->input('lname'),
          'phone'    => $request->input('phone'),
          'email'    => $request->input('email'),
          'password' => Hash::make($password),
          'terms'    => 1,
          'language' => $current_language
          );
          $user = User::create($data_user);
          $user_id = $user->id;

          Mail::to($request->input('email'))->send(new RegisterMail($user, $password));
        }

      }

      // To office
      if ($request->shipping_to == 2) {
        $request->validate([
        'office_address' => 'required',
        ],
        [
        'required' => 'Задължително поле.',
        ]
        );

        $data_address['office'] = $request->office_address;

        $data_address['shipping_to'] = 2;
    }else{
      $request->validate([
      'city' => 'required',
      'address' => 'required',
      ],
      [
      'required' => 'Задължително поле.',
      ]
      );



      $data_address['address'] = $request->address;
      $data_address['shipping_to'] = 1;
      $data_address['no'] = $request->no;
      $data_address['block'] = $request->block;
      $data_address['entrance'] = $request->entrance;
      $data_address['floor'] = $request->floor;
      $data_address['apartment_no'] = $request->apartment_no;
    }

    $data_address['city']    = $request->city;
    $data_address['zip']     = $request->zip;
    $data_address['courier'] = $request->courier;

    $settings = Setting::where('key', 'shipping_price')->first();
    $free_shipping = Setting::where('key', 'free_shipping')->where('language', 'bg')->first()->value;
    if ($cart_products->sum('price') >= $free_shipping && $free_shipping > 0) {
      $shipping_price = 0;
    }else{
      $shipping_price = $settings->value;
    }




      $data = array(
      'fname'        => $request->input('fname'),
      'lname'        => $request->input('lname'),
      'phone'        => $request->input('phone'),
      'email'        => $request->input('email'),
      'user_id'      => $user_id,
      'note'         => $request->input('note'),
      'shipping'     => $shipping_price,
      'payment'      => $request->input('payment'),
      'status'       => 1,
      'type'         => 1
      );

      foreach ($cart_products->get() as $cart) {
        $data_products[] = array(
        'user_id'      => $user_id,
        'product_id'   => $cart->product_id,
        'price'        => $cart->price,
        'price_old'    => $cart->price_old,
        'qty'          => 1,
        'weight'       => $cart->product->weight,
        );
      }


      if ($request->input('invoice') == 1) {
        $data_invoice = $request->validate([
        'company_name'     => ['required', 'string', 'max:255'],
        'company_owner'    => ['required', 'string', 'max:255'],
        'company_city'     => ['required'],
        'company_address'  => ['required', 'string', 'max:255'],
        'company_city'     => ['required', 'string'],
        'company_number'   => ['required', 'string'],
        ],
        [
        'required' => 'Задължително поле.',
        ]);

        $data_invoice['company_vat'] = $request->input('company_vat');
      }


      $order = Order::create($data);
      $order->address()->create($data_address);
      $order->products()->createMany($data_products);

      if ($request->input('invoice') == 1) {
        $order->invoice()->create($data_invoice);
      }


      session(['order_id' => $order->id]);

      Mail::to($request->input('email'))->send(new OrderMail($order));

      if ($request->payment == 2) {
        return redirect()->route('order.borica', $order->id);
      }

      $cart_products->delete();


      return redirect()->route('order_complete');

    }


    public function complete(){
      $order = Order::where('id', session('order_id'))->with('products')->first();

      return view('layouts.frontend.pages.order_complete', compact('order'));
    }


    public function boricaRequest($order_id){


      $order    = Order::where('id', $order_id)->first();

      session(['order_id' => $order->id]);

      $total_products = $order->products->sum('price');

        $currency = 'EUR';
        $TERMINAL = 'V5401733';
        $MERCHANT = '6210033571';
        $borica_lang = 'BG';
        $amount = number_format($total_products + $order->shipping, 2, '.', '');

      $amount_currency = number_format($total_products + $order->shipping, 2, '.', '');


      $merchant_time_zone = 'Europe/Sofia';
      date_default_timezone_set($merchant_time_zone);

      $trtype     = "1";
      $txnid      = rand(10, 99) . date('is');
      $desc       = 'Плащане на поръчка ' . $order->id;
      $timestamp  = date("YmdHis", strtotime('-3 hours'));
      $nonce      = strtoupper(bin2hex(openssl_random_pseudo_bytes(16)));
      $order_id = $order->id;

      $p_sign =
      strlen($TERMINAL).$TERMINAL.
      strlen($trtype).$trtype.
      strlen($amount).$amount.
      strlen($currency).$currency.
      strlen($txnid).$txnid.
      strlen($timestamp).$timestamp.
      strlen($nonce).$nonce.'-';






$private_key = '-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjq7lT04wTOCQm
g0W3JZbHCjpaoaK41WJIp91pbqDT+sz9IhdwqjHxh9jO4F+sxJFqTx+CMAqtRM0p
Lp4DLffzS+6InpqdwL06M14Tkw8G6CkZgdNNHhqiRp9wOH0V20/IxPvjHmw8QKul
YZvCWtVVhg2l8KzhkVTttmsSAirYq6pgAd5wDcYIDsVaEJtUnRcxfvsr58ihnKJ6
rQcaZ1wOSoVV1nF2EmXL8Ex8tcwh0sYKaiRXFxRyhDvSOOI1l+DdfjMb+YXWozGd
jdUBMH1Aj6Tk8ukQFzI+sL5iQMHYZ5op6hJlltgO8u5I7L8AzX8JWBdlevzcC6xR
NldvyxiVAgMBAAECggEADOqBKmbViodnKZeOxF3AhijoovysyTZPARnSL2mjYnx2
edFwv8YxQR9t0iGYcJtl4wRRzGXQfzegkyE9J1YU16EvNp6Bksps2cTHpfbN0ZyM
8G4zh8Xvkc0jSZQDoa/CyOlr+/02IGkgF+HZ4glmBXpEkHWrnEoU8C9xnU8Iz5FY
MWN9ck1Wvlp7auGVC3urInmiqMlULXyJlqom8/Ca029jCWpUuTmBpyQCjLC3yHVT
npwSEmKvmexBkxbnqGe7iDRyG2bFL1DrKwd5EbF59uQee1ZEqyqfhmZVMq7vy++z
8Meij9vImI5+gDWpbnO3krArs8ifFMpobZa6QGslwQKBgQDNufRMZk9bjk7Mr+Ii
QUbE7Ri1V/UWNbXW7P+5SJvFB40qLlY0SN4rDLsqgBWpNd14zRpc987SHx0+N1Fx
Gy0fIdamHRLPmLJMZp4HwOXaFAsI0qFDG14Fn6AyibFCaJ1nEEuM9Mg3fafoDPv/
WhiT+eTy5zj61LrtquUEIM1pNQKBgQDLqs/19B+YsrIIQWR0hLZLOzIisiH0I/G7
DVKboq1/eri2ezXJKBxaMjfpaoqD1PGtGwH7eNG1vD1g8uGQXwLrYZWIw0tML7Ja
s+oYpW6ZSfc47W4NVm2OJkcjgn3m5UiiVUttv1x8K0V6RjH02T74KFG0BpYlbtFw
cyk/WnA94QKBgE5tTYyylB47Kh8uDe8xI2F/YaQAXBaTczb0MqjX3UpHjrE96O8V
uFyBBfk1ywwu1LdwuVQnxFimM+e7/vg3fAQaSlIZU0qA07f8htI932I7sdkzMvb6
P+W07MVXaJQAfcEEnUinKIy/AnucN5UpK6V95qITM82ru3dPZu8j8irhAoGAe1S2
lhP8xjT/xiwDLuPml+wC0ivYj8Tsbv8EVSbPtXCVRjuaOHPHp37diMVxl59tsgu2
yZdCNrEE4h5yJUDDvdHcAXNxt3LyqCZmzgHv1XeK87gjeoQp13iqf4BXyWhy8YqB
ILZOxQpXClJTkhe0IAYaY8/RQF25CkVSZwDXE0ECgYEAm/3KRvDOB5r1StdarYgi
vRYPxx/Zw3EiYyBWqQ2Vki8bc6zqBqllJKkQzUgew8IH2DPsYsdYSzNrCLUL7CXi
0GbI9Fj5GfuZHEpLVt7JG8A96M41/Q5MbMVqzOSFqnY5s7JEFj5ZXWqL2OxjxrMj
CwOtSMXog3QqavoDNg15Wmw=
-----END PRIVATE KEY-----';

        $priv_key_password = 'ahelos_web';


      // Подписване на съобщението с цифров сертификат
      try {
        $private_key_id = openssl_get_privatekey($private_key, $priv_key_password);

        openssl_sign($p_sign, $signature, $private_key_id, OPENSSL_ALGO_SHA256);
        openssl_free_key($private_key_id);
      } catch (\Exception $e) {
        echo "<pre>";
        print_r($e);
        exit;
      }

      // Формиране окончателна подписана сигнатура
      $p_sign = strtoupper(bin2hex($signature));


      $data = array(
        'TRTYPE' => '1',
        'COUNTRY' => $borica_lang,
        'CURRENCY' => $currency,
        'ADDENDUM' => 'AD,TD',
        'MERCH_GMT' => '+02',
        'MERCH_NAME' => 'Ahelos',
        'MERCH_URL' => 'https://ahelos.bg',
        'LANG' => $borica_lang,
        'ORDER' => $txnid,
        'AMOUNT' => $amount,
        'DESC' => $desc,
        'TIMESTAMP' => $timestamp,
        'TERMINAL' => $TERMINAL,
        'MERCHANT' => $MERCHANT,
        'AD.CUST_BOR_ORDER_ID' => $order->id,
        'NONCE' => $nonce,
        'P_SIGN' => $p_sign
      );




      $paymentInfo = array(
        'order_id' => $order->id,
        'paid_sum' => $amount,
        'amount_currency' => $amount_currency,
        'txnid' => $txnid,
        'is_paid' => 0,
        'session_id' => session()->getId(),
        'ref_num' => '',
        'language' => 'bg',
        'date_created' => \Carbon\Carbon::now(),

      );


      CardPayment::create($paymentInfo);


      return view('layouts.frontend.pages.borica', compact('data'));
    }


    public function boricaResponse(){
      $cardPayment = CardPayment::where('txnid', $_POST['ORDER'])->first();

      // session()->setId($cardPayment->session_id);
      // Cookie::make('cartToken', $cardPayment->session_id);



      if ($_POST['RC'] == 00) {
        $ref_num    = $_POST['RRN'];
        $auth_code  = $_POST['APPROVAL'];

        $cardPayment->update([
          'ref_num' => $ref_num,
          'auth_code' => $auth_code,
          'is_paid' => 1
        ]);

        session(['order_id' => $cardPayment->order_id]);





        $cart_products = Cart::where('token', Cookie::get('cartToken'));
        $cart_products->delete();

        return redirect()->to('/'.$cardPayment->language.'/order-complete');
      }
      elseif ($_POST['RC'] == '-25') {
        return redirect()->to('/'.$cardPayment->language.'/checkout');
      }
      else{
        return redirect()->route('homepage');
      }
    }



    public function quickOrder(Request $request){
      $request->validate([
        'email'      => 'required',
        'phone'      => 'required',
        'terms'      => 'required',
      ],
      [
        'required' => 'Задължително поле'
      ]);




      $user_id = 0;
      if (Auth::user()) {
        // Ако потребителя е логнат
        $user_id = Auth::user()->id;


      }else{
        // АКо потребителя не е логнат
        $user = User::where('email', $request->input('email'))->first();
        // Проверяваме дали потребителя има създаден акаунт с този имейл
        if ($user) {
          // Ако има създаден акаунт с този имейл, взимаме id-то
          $user_id = $user->id;
        }else{
          // Ако няма потребител с този имейл, създаваме акаунт.
          $password = rand(1000, 9999);
          $data_user = array(
          'phone'    => $request->input('phone'),
          'email'    => $request->input('email'),
          'password' => Hash::make($password),
          'terms'    => 1,
          'language' => 'bg'
          );
          $user = User::create($data_user);
          $user_id = $user->id;

          Mail::to($request->input('email'))->send(new RegisterMail($user, $password));
        }

      }


      $product = Product::findOrFail($request->input('product_id'));

      $settings = Setting::where('key', 'shipping_price')->first();
      $shipping_price = $settings->value;


      $data = array(
      'phone'        => $request->input('phone'),
      'email'        => $request->input('email'),
      'user_id'      => $user_id,
      'shipping'     => $shipping_price,
      'payment'      => 1,
      'status'       => 1,
      'type'         => 2
      );



      $data_product = array(
      'user_id'      => $user_id,
      'product_id'   => $product->id,
      'price'        => $product->price,
      'price_old'    => $product->price_old,
      'qty'     => 1,
      'weight'     => $product->weight
      );


      $order = Order::create($data);
      $order->products()->create($data_product);
      $order->address()->create();

      Mail::to($request->input('email'))->send(new OrderMail($order));

      session(['order_id' => $order->id]);
      return redirect()->route('order_complete');

    }

}

Anon7 - 2022
AnonSec Team