# 阿里短信 ## 安装依赖 ``` composer require mrgoon/aliyun-sms ``` ## 代码 - file:`application/utils/Sms.php` ```php <?php namespace app\utils; use Mrgoon\AliSms\AliSms; use think\Exception; use think\facade\Cache; /** * 短信 */ class Sms { /** * 短信类型: 阿里云 */ const MODE_ALIYUN = 'aliyun'; /** * 发送短信 * * @param string $mode 短信类型, 参考Sms::MODE_ALIYUN * @param string $template_id 短信模板id * @param string $phone 手机号 * @param array $data 参数 * @return void * @throws think\Exception */ static function send($mode=Sms::MODE_ALIYUN, $template_id='', $phone, $data) { if (Cache::get(sprintf('SMS:%s', $phone))) // 短信一分钟限制 throw new Exception('一分钟内不能重复发送!', 1); switch ($mode) { case Sms::MODE_ALIYUN: (new self())->sms_aliyun($phone, $data, $template_id); break; } Cache::set(sprintf('SMS:%s', $phone), 1, 60); } // 阿里云短信发送 public function sms_aliyun($phone, $data, $template_id) { $config = [ 'access_key' => '你的access_key', 'access_secret' => '你的access_secret', 'sign_name' => '签名名称', ]; $aliSms = new AliSms(); $response = $aliSms->sendSms($phone, $template_id, $data, $config); if ($response->Code != 'OK') throw new Exception($response->Message, 1); return $response; } } ``` ## 使用 ```php Sms::send(Sms::MODE_ALIYUN, '短信模板id', '手机号', [参数...]); ```