|
|
|
|
|
|
|
|
<?php |
|
|
<?php |
|
|
|
|
|
|
|
|
namespace Lc\ShopBundle\Services ; |
|
|
|
|
|
|
|
|
namespace Lc\ShopBundle\Services; |
|
|
|
|
|
|
|
|
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; |
|
|
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; |
|
|
use Symfony\Component\HttpFoundation\ParameterBag; |
|
|
use Symfony\Component\HttpFoundation\ParameterBag; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MailjetSMS |
|
|
class MailjetSMS |
|
|
{ |
|
|
{ |
|
|
protected $client ; |
|
|
|
|
|
protected $parameterBag ; |
|
|
|
|
|
|
|
|
|
|
|
public function __construct(HttpClientInterface $client, ParameterBagInterface $parameterBag) |
|
|
|
|
|
{ |
|
|
|
|
|
$this->client = $client ; |
|
|
|
|
|
$this->parameterBag = $parameterBag ; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function send($to, $message) |
|
|
|
|
|
{ |
|
|
|
|
|
$token = $this->parameterBag->get('mailjet.sms.token') ; |
|
|
|
|
|
$from = $this->parameterBag->get('mailjet.sms.from') ; |
|
|
|
|
|
|
|
|
|
|
|
if($token && strlen($token) > 0) { |
|
|
|
|
|
$response = $this->client->request( |
|
|
|
|
|
'POST', |
|
|
|
|
|
'https://api.mailjet.com/v4/sms-send', |
|
|
|
|
|
[ |
|
|
|
|
|
'headers' => [ |
|
|
|
|
|
'Authorization' => 'Bearer '.$token, |
|
|
|
|
|
//'Content-Type' => 'application/json', |
|
|
|
|
|
], |
|
|
|
|
|
'json' => [ |
|
|
|
|
|
'From' => $from, |
|
|
|
|
|
'To' => $to, |
|
|
|
|
|
'Text' => $message, |
|
|
|
|
|
] |
|
|
|
|
|
] |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
$statusCode = $response->getStatusCode(); |
|
|
|
|
|
|
|
|
|
|
|
if($statusCode == 200) { |
|
|
|
|
|
$content = $response->getContent(); |
|
|
|
|
|
$content = $response->toArray(); |
|
|
|
|
|
return $content ; |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
// log |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return false ; |
|
|
|
|
|
|
|
|
protected $client; |
|
|
|
|
|
protected $parameterBag; |
|
|
|
|
|
protected $mailUtils ; |
|
|
|
|
|
protected $utils ; |
|
|
|
|
|
|
|
|
|
|
|
public function __construct(HttpClientInterface $client, ParameterBagInterface $parameterBag, UtilsManager $utilsManager) |
|
|
|
|
|
{ |
|
|
|
|
|
$this->client = $client; |
|
|
|
|
|
$this->parameterBag = $parameterBag; |
|
|
|
|
|
$this->mailUtils = $utilsManager->getMailUtils() ; |
|
|
|
|
|
$this->utils = $utilsManager->getUtils() ; |
|
|
} |
|
|
} |
|
|
else { |
|
|
|
|
|
throw new \ErrorException('Le token SMS Mailjet n\'est pas défini.') ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function send($user, $message) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
if($user) { |
|
|
|
|
|
$phone = $this->utils->formatPhoneNumber($user->getPhone()) ; |
|
|
|
|
|
|
|
|
|
|
|
if($this->parameterBag->get('mailjet.dev.redirect.active') == 1) { |
|
|
|
|
|
$this->mailUtils->send([ |
|
|
|
|
|
MailUtils::SUBJECT => 'Notification par SMS à '.$phone, |
|
|
|
|
|
MailUtils::TO_EMAIL => $user->getEmail(), |
|
|
|
|
|
MailUtils::CONTENT_TEMPLATE => 'mail/notification', |
|
|
|
|
|
MailUtils::CONTENT_DATA => [ |
|
|
|
|
|
'message' => $message |
|
|
|
|
|
], |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
return true ; |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
$token = $this->parameterBag->get('mailjet.sms.token'); |
|
|
|
|
|
$from = $this->parameterBag->get('mailjet.sms.from'); |
|
|
|
|
|
|
|
|
|
|
|
if ($token && strlen($token) > 0) { |
|
|
|
|
|
$response = $this->client->request( |
|
|
|
|
|
'POST', |
|
|
|
|
|
'https://api.mailjet.com/v4/sms-send', |
|
|
|
|
|
[ |
|
|
|
|
|
'headers' => [ |
|
|
|
|
|
'Authorization' => 'Bearer ' . $token, |
|
|
|
|
|
], |
|
|
|
|
|
'json' => [ |
|
|
|
|
|
'From' => $from, |
|
|
|
|
|
'To' => $phone, |
|
|
|
|
|
'Text' => $message, |
|
|
|
|
|
] |
|
|
|
|
|
] |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
$statusCode = $response->getStatusCode(); |
|
|
|
|
|
|
|
|
|
|
|
if ($statusCode == 200) { |
|
|
|
|
|
$content = $response->getContent(); |
|
|
|
|
|
$content = $response->toArray(); |
|
|
|
|
|
return $content; |
|
|
|
|
|
} else { |
|
|
|
|
|
// log |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
throw new \ErrorException('Le token SMS Mailjet n\'est pas défini.'); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |