ircykk / ezwm
EZWM API
v1.0.0
2022-09-08 16:47 UTC
Requires
- ext-soap: *
Requires (Dev)
README
用于NFZ EZWM服务的API客户端 ezwm.nfz.gov.pl,文档(PDF): nfz.gov.pl.
这个仓库不会经常更新,但欢迎贡献。
安装
通过Composer
composer require ircykk/ezwm
使用
如何创建会话(获取认证令牌和会话ID)的示例
<?php use Ircykk\Ezwm\Auth\authToken; use Ircykk\Ezwm\Auth\session; use Ircykk\Ezwm\AuthService\AuthClientFactory; use Ircykk\Ezwm\AuthService\AuthService; use Ircykk\Ezwm\AuthService\Credentials; include_once __DIR__.'/vendor/autoload.php'; const EZWM_ENV_TEST = false; const EZWM_SOAP_TRACE = false; // credentials $login = '*********'; $password = '********'; $operatorId = '***/******'; $domain = '**'; $type = '***'; // create credentials object $credentials = new Credentials( $login, $password, $operatorId, $domain, $type ); $authClientFactory = new AuthClientFactory(); $authClient = $authClientFactory->build(EZWM_ENV_TEST); $authService = new AuthService($credentials, $authClient); try { $sessionResponse = $authService->createSession(); /** @var session $session */ $session = $sessionResponse['session']; /** @var authToken $authToken */ $authToken = $sessionResponse['authToken']; $sessionId = $session->getId(); $authTokenId = $authToken->getId(); echo "Session ID: $sessionId; Auth Token ID: $authTokenId"; } catch (Exception $e) { echo html_entity_decode($e->getMessage()); }
从wsdl/xsd构建类
仓库包含预构建的类,但如果需要,您也可以自行构建。
从模式生成服务类
生成器将为命名空间 Ircykk\Ezwm\ServiceBroker
和 Ircykk\Ezwm\Auth
生成从wsdl模式生成的类。
- 安装composer依赖项
composer install
- 运行生成器
php bin/wsdl2php.php
更多详情: https://github.com/wsdl2phpgenerator/wsdl2phpgenerator
从xsd模式生成文档类
生成器将为命名空间 Ircykk\Ezwm\Schema
从xsd模式生成类。
- 安装composer依赖项
composer install
- 运行生成器
bash bin/xsd2php.sh
您可以在 bin/config.yml
中调整生成器配置。
更多详情: https://github.com/goetas-webservices/xsd2php
构建后修复
由于会话在SOAP响应头中返回,我们需要在 Ircykk\Ezwm\Auth\AuthenticationService
类的 login
方法中进行调整。我们需要将 $outputHeaders
添加到参数中,以便我们可以从响应头中获取会话ID。
/** * @param loginRequest $request * @param null $outputHeaders * @return string */ public function login(loginRequest $request, &$outputHeaders = null) { return $this->__soapCall('login', array($request), null, null, $outputHeaders); }