* sender changed to from
This commit is contained in:
parent
e20ef1ed35
commit
7f13dbf711
@ -26,7 +26,7 @@ use Symfony\Contracts\HttpClient\HttpClientInterface;
|
|||||||
*/
|
*/
|
||||||
final class LightSmsTransport extends AbstractTransport
|
final class LightSmsTransport extends AbstractTransport
|
||||||
{
|
{
|
||||||
protected const HOST = 'www.lightsms.com';
|
protected const HOST = 'lightsms.com';
|
||||||
|
|
||||||
private $login;
|
private $login;
|
||||||
private $password;
|
private $password;
|
||||||
@ -75,11 +75,11 @@ final class LightSmsTransport extends AbstractTransport
|
|||||||
'39' => 'Phone number does not exist in this database',
|
'39' => 'Phone number does not exist in this database',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function __construct(string $login, string $password, string $phone, HttpClientInterface $client = null, EventDispatcherInterface $dispatcher = null)
|
public function __construct(string $login, string $password, string $from, HttpClientInterface $client = null, EventDispatcherInterface $dispatcher = null)
|
||||||
{
|
{
|
||||||
$this->login = $login;
|
$this->login = $login;
|
||||||
$this->password = $password;
|
$this->password = $password;
|
||||||
$this->phone = $phone;
|
$this->from = $from;
|
||||||
|
|
||||||
parent::__construct($client, $dispatcher);
|
parent::__construct($client, $dispatcher);
|
||||||
}
|
}
|
||||||
@ -102,19 +102,16 @@ final class LightSmsTransport extends AbstractTransport
|
|||||||
|
|
||||||
$timestamp = time();
|
$timestamp = time();
|
||||||
|
|
||||||
$signature = $this->generateSignature([
|
$signature = $this->generateSignature($message, $timestamp);
|
||||||
'message' => $message,
|
|
||||||
'timestamp' => $timestamp,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$endpoint = sprintf(
|
$endpoint = sprintf(
|
||||||
'https://%s/external/get/send.php?login=%s&signature=%s&phone=%s&text=%s&sender=%s×tamp=%s',
|
'https://www.%s/external/get/send.php?login=%s&signature=%s&phone=%s&text=%s&sender=%s×tamp=%s',
|
||||||
$this->getEndpoint(),
|
$this->getEndpoint(),
|
||||||
$this->login,
|
$this->login,
|
||||||
$signature,
|
$signature,
|
||||||
$this->escapePhoneNumber($message->getPhone()),
|
$this->escapePhoneNumber($message->getPhone()),
|
||||||
$this->escapeSubject($message->getSubject()),
|
$this->escapeSubject($message->getSubject()),
|
||||||
$this->phone,
|
$this->from,
|
||||||
$timestamp
|
$timestamp
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -143,14 +140,14 @@ final class LightSmsTransport extends AbstractTransport
|
|||||||
return $sentMessage;
|
return $sentMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function generateSignature(array $params): string
|
private function generateSignature(SmsMessage $message, string $timestamp): string
|
||||||
{
|
{
|
||||||
$params = [
|
$params = [
|
||||||
'timestamp' => $params['timestamp'],
|
'timestamp' => $timestamp,
|
||||||
'login' => $this->login,
|
'login' => $this->login,
|
||||||
'phone' => $this->escapePhoneNumber($params['message']->getPhone()),
|
'phone' => $this->escapePhoneNumber($message->getPhone()),
|
||||||
'sender' => $this->phone,
|
'sender' => $this->from,
|
||||||
'text' => $this->escapeSubject($params['message']->getSubject()),
|
'text' => $this->escapeSubject($message->getSubject()),
|
||||||
];
|
];
|
||||||
|
|
||||||
ksort($params);
|
ksort($params);
|
||||||
|
@ -34,12 +34,12 @@ final class LightSmsTransportFactory extends AbstractTransportFactory
|
|||||||
|
|
||||||
$login = $this->getUser($dsn);
|
$login = $this->getUser($dsn);
|
||||||
$token = $this->getPassword($dsn);
|
$token = $this->getPassword($dsn);
|
||||||
$phone = $dsn->getRequiredOption('phone');
|
$from = $dsn->getRequiredOption('from');
|
||||||
|
|
||||||
$host = 'default' === $dsn->getHost() ? null : $dsn->getHost();
|
$host = 'default' === $dsn->getHost() ? null : $dsn->getHost();
|
||||||
$port = $dsn->getPort();
|
$port = $dsn->getPort();
|
||||||
|
|
||||||
return (new LightSmsTransport($login, $token, $phone, $this->client, $this->dispatcher))->setHost($host)->setPort($port);
|
return (new LightSmsTransport($login, $token, $from, $this->client, $this->dispatcher))->setHost($host)->setPort($port);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getSupportedSchemes(): array
|
protected function getSupportedSchemes(): array
|
||||||
|
@ -41,7 +41,7 @@ final class LightSmsTransportFactoryTest extends TransportFactoryTestCase
|
|||||||
|
|
||||||
public function unsupportedSchemeProvider(): iterable
|
public function unsupportedSchemeProvider(): iterable
|
||||||
{
|
{
|
||||||
yield ['somethingElse://accountSid:authToken@default?phone=37061234567'];
|
yield ['somethingElse://login:token@default?phone=37061234567'];
|
||||||
yield ['somethingElse://accountSid:authToken@default']; // missing "phone" option
|
yield ['somethingElse://login:token@default']; // missing "phone" option
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user