%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.222.97.216 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sale/lib/cashbox/ |
Upload File : |
<?php namespace Bitrix\Sale\Cashbox; use Bitrix\Main\Localization; use Bitrix\Main; Localization\Loc::loadMessages(__FILE__); /** * Class YarusOfd * @package Bitrix\Sale\Cashbox */ class YarusOfd extends Ofd { const HEADER_TOKEN_NAME = 'Ofdapitoken'; const ACTIVE_URL = 'https://api.ofd-ya.ru/ofdapi/v1/getChequeLink'; const TEST_URL = 'https://testapi.ofd-ya.ru/ofdapi/v1/getChequeLink'; /** * @return string */ protected function getUrl() { if ($this->getValueFromSettings('OFD_MODE', 'IS_TEST') === 'Y') { return static::TEST_URL; } return static::ACTIVE_URL; } /** * @return array */ protected function getLinkParamsMap() { return array( 'fiscalDocumentNumber' => Check::PARAM_FISCAL_DOC_NUMBER, 'fiscalDriveNumber' => Check::PARAM_FN_NUMBER ); } /** * @return string */ public static function getName() { return Localization\Loc::getMessage('SALE_CASHBOX_YARUS_OFD_NAME'); } /** * @param $data * @return string * @throws Main\ArgumentException */ public function generateCheckLink($data) { $queryString = $this->getQueryString($data); $result = $this->sendQuery($queryString); if (isset($result[0]['link'])) { return $result[0]['link']; } return ''; } /** * @param $data * @return mixed * @throws Main\ArgumentException */ private function getQueryString($data) { $queryData = array(); $paramsMap = $this->getLinkParamsMap(); foreach ($paramsMap as $param => $key) { $queryData[$param] = $data[$key]; } return Main\Web\Json::encode($queryData); } /** * @param $queryString * @return bool|array */ private function sendQuery($queryString) { $authKey = $this->getValueFromSettings('AUTH', 'INN'); if (!$authKey) { return ''; } $client = new Main\Web\HttpClient(); $client->setHeader(static::HEADER_TOKEN_NAME, $authKey); $client->query('POST', $this->getUrl(), $queryString); $result = $client->getResult(); try { $result = Main\Web\Json::decode($result); } catch (Main\ArgumentException $exception) { return false; } return $result; } /** * @return array */ public static function getSettings() { $settings = parent::getSettings(); $settings['AUTH'] = array( 'LABEL' => Localization\Loc::getMessage('SALE_CASHBOX_YARUS_SETTINGS_AUTH'), 'ITEMS' => array( 'INN' => array( 'TYPE' => 'STRING', 'LABEL' => Localization\Loc::getMessage('SALE_CASHBOX_YARUS_AUTH_KEY'), 'VALUE' => '' ) ) ); return $settings; } }