src/Biz/Sms/Service/Impl/SmsServiceImpl.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Sms\Service\Impl;
use Biz\BaseService;
use Biz\Sms\Service\SmsService;
use Biz\CloudPlatform\CloudAPIFactory;
use Biz\System\SettingException;
use Biz\Sms\SmsException;
use Biz\User\UserException;
class SmsServiceImpl extends BaseService implements SmsService
{
protected $apiFactory;
public function isOpen($smsType)
{
$cloudSmsSetting = $this->getSettingService()->get('cloud_sms');
if ((isset($cloudSmsSetting['sms_enabled'])) && ('1' == $cloudSmsSetting['sms_enabled'])
&& (isset($cloudSmsSetting[$smsType])) && ('on' == $cloudSmsSetting[$smsType])) {
return true;
}
return false;
}
public function smsSend($smsType, $userIds, $description, $parameters = array())
{
if (!$this->isOpen($smsType)) {
$this->createNewException(SmsException::FORBIDDEN_SMS_SETTING());
}
//这里不考虑去重,只考虑unlock
$mobiles = $this->getUserService()->findUnlockedUserMobilesByUserIds($userIds);
$to = implode(',', $mobiles);
try {
$api = $this->createCloudeApi();
$result = $api->post('/sms/send', array('mobile' => $to, 'category' => $smsType, 'sendStyle' => 'templateId', 'description' => $description, 'parameters' => $parameters));
} catch (\RuntimeException $e) {
$this->createNewException(SmsException::FAILED_SEND());
}
$message = sprintf('对%s发送用于%s的通知短信', $to, $smsType);
$this->getLogService()->info('sms', $smsType, $message, $mobiles);
return true;
}
public function sendVerifySms($smsType, $to, $smsLastTime = 0)
{
if (!$this->checkPhoneNum($to)) {
$this->createNewException(SmsException::ERROR_MOBILE());
}
if (!$this->isOpen($smsType)) {
$this->createNewException(SmsException::FORBIDDEN_SMS_SETTING());
}
$allowedTime = 120;
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。