MOON
Server: Apache
System: Linux server.royaltuning.hu 4.18.0-425.13.1.el8_7.x86_64 #1 SMP Tue Feb 21 04:20:52 EST 2023 x86_64
User: royaltuning (1001)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/royaltuning/www/public/backoffice.royaltuning.hu/app/Helpers/WebshippyHelper.php
<?php

namespace App\Helpers;

use App\Http\Controllers\Backend\Api\Webshippy\WebshippyController;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage;

class WebshippyHelper
{
    /**
     * API kulcs lekérése a source mező alapján.
     */
    public static function getApiKey($source)
    {
        $apiKeys = config('webshippy.shops');
        return $apiKeys[$source] ?? null;
    }

    /**
     * Webshippy rendelésazonosító lekérése, ha nincs wspyId az adatbázisban.
     */
    public static function getWebshippyOrderId($referenceId, $source)
    {

        $apiKey = self::getApiKey($source);

        if (!$apiKey) {
            return null;
        }

        $response = WebshippyController::getOrder($referenceId, $source);
        if ($response->status === 'success') {
            $orders = $response->result;
            if (isset($orders[0]->wspyId)) {
                DB::table("woo_orders")->where("order_id", $referenceId)->update(["wspyId" => $orders[0]->wspyId]);

                return $orders[0]->wspyId;
            } else {
                return null;
            }

        }

        return null;
    }


    /**
     * Webshippy tracking információ lekérése a Webshippy azonosító alapján.
     */
    public static function getTrackingInfo($wspyId, $source)
    {
        $apiKey = self::getApiKey($source);

        if (!$apiKey || !$wspyId) {
            return null;
        }

        $response = WebshippyController::getTrack($wspyId, $source);

        if (isset($response->status)) {
            if ($response->status === 'success' && empty($response->message) && !empty($response->result)) {
                return (array)$response->result->{$wspyId} ?? null;
            }
        }
        return null;
    }
}