File: D:/HostingSpaces/SBogers10/topswtwmobile.komma.pro/app/KommaApp/Shop/Orders/OrderToken.php
<?php
namespace KommaApp\Shop\Orders;
use Illuminate\Support\Facades\URL;
class OrderToken
{
private $secret = 'T0ps!P@y123';
private $cryptData = ['orderId','invoice_first_name','created_at'];
/**
* Generate a token specifically for an order
* Used f.e. for completing pending payments
*
* @param $data
* @return bool
*/
public function generate($data)
{
if ( ! $this->validate($data)) return false;
return \Hash::make( $this->dataString($data) . $this->secret);
}
/**
* @param $data
* @param $hashed
* @return bool
*/
public function check($data, $hashed)
{
if ( ! $this->validate($data)) return false;
return \Hash::check( $this->dataString($data) . $this->secret, $hashed);
}
/**
* @param $data
* @return bool
*/
private function validate($data)
{
// Check if all data exists in data
foreach($this->cryptData as $value)
{
if ( ! isset($data[$value])) return false;
}
return true;
}
/**
* @param $data
* @return string
*/
private function dataString($data)
{
$dataString = '';
foreach($this->cryptData as $value)
{
$value == 'created_at' ? $addString = $data['created_at']->timestamp: $addString = $data[$value];
$dataString .= $addString;
}
return $dataString;
}
}