Skip to main content

短信服务

查看官方SDK

安装

composer require alibabacloud/darabonba-openapi
composer require alibabacloud/dysmsapi-20170525

使用

**展开查看源码**
<?php
/**
* @Descripttion:
* @Author: ovim <ovimcloud@gmail.com>
*/

namespace App\Services;

use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;

use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;

/**
* Class AliSmsService
* @package App\Services
*/
class AliSmsService extends BaseService
{
/**
* 使用AK&SK初始化账号Client
*
* @param string $accessKeyId
* @param string $accessKeySecret
* @return Dysmsapi Client
*/
public static function createClient(string $accessKeyId, string $accessKeySecret): Dysmsapi
{
$config = new Config([
// 您的AccessKey ID
"accessKeyId" => $accessKeyId,
// 您的AccessKey Secret
"accessKeySecret" => $accessKeySecret
]);
// 访问的域名
$config->endpoint = "dysmsapi.aliyuncs.com";
return new Dysmsapi($config);
}

/**
* 发送短信验证码(单个)
*
* @param string $phoneNumbers 手机号
* @param string $code 验证码
* @return bool
*/
public function sendSms(string $phoneNumbers, string $code): bool {

if (empty($code)) return false;

$client = self::createClient("accessKeyId", "accessKeySecret");
$sendSmsRequest = new SendSmsRequest([
"phoneNumbers" => $phoneNumbers,
"signName" => "短信签名",
"templateCode" => "模版ID",
"templateParam" => json_encode([
'code' => $code
])
]);
// 复制代码运行请自行打印 API 的返回值
$result = $client->sendSms($sendSmsRequest);

if ($result->body->code == 'OK') {
return true;
}

return false;
}
}