/home/techb158/ileadtechnology.com/vendor/tzsk/payu/src/Helpers
NameSizeModeActions
Config.php38870644editdlrm
FormBuilder.php33770644editdlrm
Processor.php32140644editdlrm
Redirector.php11980644editdlrm
Storage.php15000644editdlrm
Edit: /home/techb158/ileadtechnology.com/vendor/tzsk/payu/src/Helpers/FormBuilder.php (3377B)
storage = new Storage(); $this->config = new Config($this->storage->getAccount()); $this->request = $request; } /** * @return object */ public function build() { return (object) ['fields' => $this->getFields(), 'url' => $this->config->getPaymentUrl()]; } /** * @return array */ protected function getFields() { $this->request->replace($this->storage->getData()); $redirect = collect($this->config->getRedirect())->map(function ($value) { $separator = Str::contains($value, '?') ? '&' : '?'; return url($value . $separator . '_token=' . csrf_token() . '&' . 'callback=' . $this->getStatusUrl()); })->all(); return array_merge( ['key' => $this->config->getKey(), 'hash' => $this->getHashChecksum()], array_merge($redirect, $this->validateRequest()), $this->config->isPayuMoney() ? ['service_provider' => 'payu_paisa'] : [] ); } /** * @return string */ protected function getStatusUrl() { $status_url = $this->storage->getStatusUrl(); if (empty($status_url)) { throw new \Exception('There is no Redirect URL specified.'); } return urlencode(base64_encode($status_url)); } /** * @return string */ protected function getHashChecksum() { $fields = array_merge($this->config->getRequiredFields(), $this->config->getOptionalFields()); $hash_array = []; foreach (collect($fields)->flip()->except(['phone'])->flip() as $field) { $hash_array[] = $this->request->has($field) ? $this->request->get($field) : ''; } $checksum_array = array_merge( [$this->config->getKey()], $hash_array, [$this->config->getSalt()] ); return hash('sha512', implode('|', $checksum_array)); } /** * @return array */ protected function validateRequest() { $validation = collect(array_flip($this->config->getRequiredFields()))->map(function () { return 'required'; })->all(); $data = $this->getDataArray(); $validator = Validator::make($this->request->all(), $validation); if ($validator->fails()) { throw new \InvalidArgumentException($validator->errors()->first()); } return $data; } /** * @return array */ private function getDataArray() { $data = []; $items = collect($this->config->getRequiredFields())->merge($this->config->getOptionalFields()) ->merge($this->config->getAdditionalFields()); foreach ($items as $item) { $this->request->has($item) ? $data[$item] = $this->request->get($item) : null; } return $data; } }