magdv / sbis
Sbis api package
Installs: 3 556
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=8.0
- ext-curl: *
- ext-json: *
- ext-simplexml: *
- jms/serializer: ^3.21
- nyholm/psr7: ^1.5
- psr/http-client: ^1.0
Requires (Dev)
- divineomega/do-file-cache: ^2.0
- guzzlehttp/guzzle: ^7.5
- overtrue/phplint: ^2.0
- phpunit/phpunit: ^8.5
- rector/rector: ^0.15.7
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^3.8
README
Внимание!!!
Библиотека пока активно редактируется и могут быть несовместимые изменения. Учтите этот момент.
Сделаны и протестированы методы
СБИС.Аутентифицировать
СБИС.Выход
СБИС.ИнформацияОКонтрагенте
СБИС.СБИС.ЗаписатьДокумент
СБИС.СБИС.ВыполнитьДействие
СБИС.СБИС.СБИС.СписокИзменений
Надо сделать свой локальный класс для передачи настроек declare(strict_types=1); use GuzzleHttp\Client; use MagDv\Sbis\ClientConfig; use Psr\Http\Client\ClientInterface; class LocalConfig extends ClientConfig { public function getCachePath(): ?string { return null; } public function getIsDebug(): bool { return true; } public function getUrl(): string { return getenv(ConfigNames::URL); } public function getClient(): ClientInterface { return new Client( [ 'debug' => true, ] ); } } // пример авторизации // Настройка запроса $request = new AuthRequest(); $param = new AuthParam(); $param->login = (string)getenv('LOGIN'); $param->password = (string)getenv('PASSWORD'); $params = new AuthParams(); $params->param = $param; $request->params = $params; $factory = new \MagDv\Sbis\SbisFactory(new LocalConfig()); $authApi = $factory->getAuth(); $response = $authApi->auth($request); // Текущий код ответа $response->statusCode; // Проверка, что удачный запрос if ($response->isOk()) { // ID СЕССИИ $sessionId = $response->result; } // Проверка статуса и вывод ошибки if (!$response->isOk()) { echo $response->error; } // Устанавливаем токен $factory->setSessionId($sessionId); // Тут уже с токеном начинаем использовать $contractor = $factory->getContractor(); $request = new GetInfoRequest(); $request->params = new GetInfoParams(); $request->params->memberParam = new MemberParam(); $request->params->memberParam->ul = new UlMember(); $request->params->memberParam->ul->inn = '7601000985'; $request->params->memberParam->ul->kpp = '760601001'; $request->params->memberParam->ul->name = 'СК Премьер, ОАО'; // СБИС.ИнформацияОКонтрагенте $response = $contractor->getInfo($request); if ($response->isOk()) { echo $response->result->member->inn } //результат 7601000985