Guest User

Untitled

a guest
Oct 6th, 2025
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.86 KB | None | 0 0
  1. <?php
  2.  
  3. class SkinsMoneySignatureValidator
  4. {
  5.     public function isValid(): bool
  6.     {
  7.         $payload = json_decode(@file_get_contents('php://input'), true);
  8.         if (empty($payload)) {
  9.             return false;
  10.         }
  11.  
  12.         $data = $this->flattenArray($payload);
  13.         $data[] = 'SERVICE_HASH';
  14.  
  15.         $signature = hash('sha256', implode('|', $data));
  16.  
  17.         return hash_equals($signature, $payload['signature']);
  18.     }
  19.  
  20.     private function flattenArray(array $array): array
  21.     {
  22.         unset($array['signature']);
  23.  
  24.         $return = [];
  25.  
  26.         array_walk_recursive($array, function ($a) use (&$return) {
  27.             $return[] = $a;
  28.         });
  29.  
  30.         return $return;
  31.     }
  32. }
  33.  
  34. $validator = new SkinsMoneySignatureValidator();
  35. if(!$validator->isValid()) {
  36.   http_response_code(403);
  37.   echo 'INVALID_SIGNATURE';
  38.   die();
  39. }
Advertisement
Add Comment
Please, Sign In to add comment