rohsyl / salto
一个通过 TCP/IP 实现PMS行业标准协议的PHP Salto客户端。
1.0
2022-12-21 15:58 UTC
Requires
- php: >=8.0
- ext-sockets: *
- nesbot/carbon: ^2.62
Requires (Dev)
- phpunit/phpunit: ^8.2
- symfony/var-dumper: ^4.3
This package is not auto-updated.
Last update: 2024-09-23 11:19:35 UTC
README
一个通过 TCP/IP 实现PMS行业标准协议的PHP Salto客户端。
安装
您可以通过 composer 安装此包
composer require rohsyl/salto
用法
创建客户端
$client = new SaltoClient('5.tcp.eu.ngrok.io', 14072);
尝试打开连接
$client->openSocketConnection();
失败时抛出
ConnectionFailedException
异常。
检查服务器是否可用
while (!$client->isReady()) { // wait some seconds and try again // or exit program }
发送消息
$response = $client->sendMessage($message);
可用的消息
目前仅实现了以下消息
- CNM :
CheckInMobileMessage
- CCM :
CopyMobileMessage
- MC :
ModifyMessage
- CO :
CheckoutMessage
CNM : 检入移动设备
为移动应用进行检入。
为指定日期的客人创建带有电话号码的房间访问权限
$message = (new CheckInMobileMessage()) ->forRoom('W10011') ->phone('+41774539943') ->from(Carbon::create(2022, 12, 21, 10, 30)) ->to(Carbon::create(2022, 12, 30, 10, 30)) ;
您可以指定操作员
$message = (new CheckInMobileMessage()) // ... ->by('Firstname Lastname') ;
您可以为手机显示设置文本消息。
$message = (new CheckInMobileMessage()) // ... ->withMessage('Lorem impsum') ;
您可以允许或拒绝门的访问。您必须传递一个参数数组
- 键 是 PMS 授权的 ID(请参阅系统 > PMS 授权)。
- 值 可以是
true
或false
。
$message = (new CheckInMobileMessage()) // ... ->withAuthorizations(['1' => true]) ;
CCM : 复制移动设备
与 CNM : CheckInMobileMessage
的方式相同。
MC : 修改
修改检入。更改到期日期。
$message = (new ModifyMessage()) ->fromRoom('W10011') ->expireAt(Carbon::create(2022, 12, 12, 11,0));
如果房间已检出或未被占用,将返回错误。
CO : 检出
检出房间。
$message = (new CheckoutMessage(+)) ->forRoom('W10011');
读取响应
sendMessage
方法返回 Response
实例。
$response = $client->sendMessage($message);
如果没有抛出异常,则表示一切顺利。
显示响应和请求的字符串表示形式
$response->toString(); $response->getRequest()->toString();
处理异常
使用 try .. catch !
try { } catch(SaltoException $e) { if($e instanceof ConnectionFailedException) { // ... } else if($e instanceof NakException) { // ... } else if($e instanceof WrongChecksumException) { // ... } else if($e instanceof SaltoErrorException) { // ... } }
现有异常
ConnectionFailedException
: 网络套接字连接失败NakException
: 服务器返回了负确认响应。这意味着服务器尚未准备好或发送的消息不正确(错误的 LRC)WrongChecksumException
: 响应消息不正确(错误的 lrc)SaltoErrorException
: 服务器抛出了错误:请参阅 PMS_SALTO_IS_V1.pdf 中的错误消息
测试
待办事项
composer test
变更日志
请参阅 CHANGELOG 以了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全问题,请通过电子邮件 syzin12@gmail.com 而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。