EknotifierSmsDriver.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace common\components;
  3. use common\helpers\LoggerTool;
  4. use common\models\SmsRecord;
  5. use ElkenGit\EknotifierPHP\EknotifierSms;
  6. class EknotifierSmsDriver implements SmsDriverInterface
  7. {
  8. /**
  9. * Send SMS via Eknotifier.
  10. *
  11. * @param string $mobile
  12. * @param string $message
  13. * @param string $userId
  14. * @param string $countryId
  15. * @param string $classify
  16. * @return bool
  17. * @throws \Exception
  18. */
  19. public function send(string $mobile, string $message, string $userId, string $countryId, string $classify = ''): bool
  20. {
  21. $eknotifierUrl = \Yii::$app->params['sms']['url'];
  22. $applicationCode = \Yii::$app->params['sms']['url'];
  23. $applicationPassword = \Yii::$app->params['sms']['url'];
  24. $eknotifierSms = new EknotifierSms($eknotifierUrl, $applicationCode, $applicationPassword);
  25. $response = $eknotifierSms->sendSMS($mobile, $message, $userId);
  26. LoggerTool::debug(json_encode(['eknotifierSms', $eknotifierUrl, $applicationCode, $applicationPassword, $mobile, $message, $userId, $eknotifierSms, $response]));
  27. $record = new SmsRecord();
  28. $record->USER_ID = $userId;
  29. $record->CLASSIFY = $classify;
  30. $record->COUNTRY_ID = $countryId;
  31. $record->MOBILE = $mobile;
  32. $record->CONTENT = $message;
  33. $record->RESULT = '';
  34. $record->save();
  35. return true;
  36. }
  37. }