Exemplo n.º 1
0
 protected function processRequestOssList(DataPacket $data)
 {
     /** @var Request $request */
     $request = app(Request::class);
     $input = $request->only(['username', 'password']);
     extract($input, EXTR_OVERWRITE);
     $data->addRequiredPair('Username', $username);
     if (isset($password)) {
         $data->addRequiredPair('Password', $password);
     }
     app(SessionInterface::class)->set('view.RequestOssList.data', $input);
 }
Exemplo n.º 2
0
 /**
  * Connect a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function connect(TerminalSender $sender, Request $request, $server)
 {
     $server = Server::query()->findOrFail($server);
     $sender->setCredentials($server->uri);
     $data = $request->only(['name', 'operator_id', 'point_of_sale']);
     $packet = new DataPacket();
     $packet->addRequiredPair('Username', $server->username);
     $packet->addRequiredPair('Password', $server->password);
     $packet->addPair('global_id', $data['operator_id']);
     $packet->addPair('PointOfSale', $data['point_of_sale']);
     $packet->addPair('version_id', '1.0');
     $result = $sender->send('RequestConnection', $packet);
     if (empty($result)) {
         throw new \RuntimeException();
     }
     $result = $sender->resultToArray($result);
     if (Arr::get($result, 'Result') != 'OK') {
         throw new \RuntimeException('Error');
     }
     $terminal = new Terminal(['name' => Arr::get($data, 'name'), 'operator_id' => Arr::get($data, 'operator_id'), 'point_of_sale' => Arr::get($data, 'point_of_sale'), 'external_id' => Arr::get($result, 'TerminalID'), 'guid' => Arr::get($result, 'GlobalID'), 'password' => Arr::get($result, 'Password'), 'server_id' => $server->id]);
     $terminal->save();
     return redirect()->action('\\' . static::class . '@index', [$server->id])->with('message-success', 'Terminal ' . $terminal->id . ' connected');
 }
Exemplo n.º 3
0
 /**
  * @param string $operation
  * @param DataPacket $data
  * @param array $files
  *
  * @return string
  */
 public function send($operation, DataPacket $data, $files = [], $decode = true)
 {
     if (!$this->ready()) {
         throw new \RuntimeException('Invalid parameters');
     }
     $data->addRequiredPair('Type', $operation);
     $data->addRequiredPair('terminalID', $this->terminal);
     $data->addRequiredPair('TerminalID', $this->terminal);
     if (!@$data->getRequiredItem('Password')) {
         $data->addRequiredPair('Password', $this->password);
     }
     $data->addRequiredPair('TimePacket', time());
     $data = $data->serializeToString();
     $data = base64_encode($data);
     $data = str_replace(['+', '/'], ['-', '_'], $data);
     $send = [['name' => 'destination', 'contents' => $data], ['name' => 'Hash', 'contents' => md5($data)]];
     if (!empty($files)) {
         foreach ($files as $name => &$file) {
             $send[] = ['name' => $name, 'contents' => $handle = fopen($file, 'r')];
             $file = [$handle, $file];
         }
     }
     $send = new MultipartStream($send);
     $request = new Request('POST', $this->host, ['Content-Type' => 'multipart/form-data; boundary=' . $send->getBoundary()], $send);
     $return = $this->getResponse($request, $decode);
     foreach ($files as $name => $file) {
         fclose($file[0]);
         unlink($file[1]);
     }
     return $return;
 }