HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/alq-cali.bikenow.co/vendor/dnetix/redirection/src/Message/Notification.php
<?php

namespace Dnetix\Redirection\Message;

use Dnetix\Redirection\Contracts\Entity;
use Dnetix\Redirection\Entities\Status;
use Dnetix\Redirection\Traits\StatusTrait;

class Notification extends Entity
{
    use StatusTrait;

    protected string $requestId;
    protected string $reference;
    protected string $signature;

    private string $tranKey;

    public function __construct(array $data, string $tranKey)
    {
        $this->load($data, ['requestId', 'reference', 'signature']);
        $this->loadEntity($data['status'], 'status', Status::class);

        $this->tranKey = $tranKey;
    }

    public function requestId(): string
    {
        return $this->requestId;
    }

    public function reference(): string
    {
        return $this->reference;
    }

    public function signature(): string
    {
        return $this->signature;
    }

    public function makeSignature(): string
    {
        return sha1($this->requestId() . $this->status()->status() . $this->status()->date() . $this->tranKey);
    }

    public function isValidNotification(): bool
    {
        return $this->signature() == $this->makeSignature();
    }

    /**
     * Extracts the information for the entity.
     * @return array
     */
    public function toArray(): array
    {
        return [
            'status' => $this->status()->toArray(),
            'requestId' => $this->requestId(),
            'reference' => $this->reference(),
            'signature' => $this->signature(),
        ];
    }
}