如何用thinkphp发送短信验证码
时间: 2023-06-25 12:04:11 浏览: 111
可以通过使用第三方短信平台的 API 来发送短信验证码。以下是一个使用阿里云短信服务的示例代码:
```php
// 引入阿里云 SDK
require_once __DIR__ . '/aliyun-php-sdk-core/Config.php';
use Aliyun\Core\Config;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
// 配置信息
Config::load();
$accessKeyId = 'your_access_key_id';
$accessKeySecret = 'your_access_key_secret';
$signName = 'your_sign_name'; // 签名名称
$templateCode = 'your_template_code'; // 模板CODE
// 发送短信验证码
$mobile = 'your_mobile_number';
$code = rand(100000, 999999); // 生成随机验证码
$paramString = '{"code":"' . $code . '"}'; // 短信模板参数
$profile = DefaultProfile::getProfile('cn-hangzhou', $accessKeyId, $accessKeySecret);
$acsClient = new DefaultAcsClient($profile);
$request = new SendSmsRequest();
$request->setPhoneNumbers($mobile);
$request->setSignName($signName);
$request->setTemplateCode($templateCode);
$request->setTemplateParam($paramString);
$response = $acsClient->getAcsResponse($request);
// 处理响应结果
if ($response->Code == 'OK') {
// 发送成功,将验证码存储到 session 或缓存中
session('sms_code', $code);
echo '验证码已发送,请注意查收';
} else {
echo '发送失败:' . $response->Message;
}
```
需要注意的是,上述代码中的 `your_access_key_id`、`your_access_key_secret`、`your_sign_name`、`your_template_code` 和 `your_mobile_number` 都需要根据实际情况进行替换。同时,由于阿里云 SDK 并不包含在 ThinkPHP 中,需要手动下载并添加到项目中。
阅读全文