1.阿里云短信安装
这里根据官方文档的推荐 选择使用composer安装 ,这里用的是原版sdk
composer require alibabacloud/client //SDK 核心依赖
composer require alibabacloud/dysmsapi 1.8.1236 //短信
短信模板配置和用户AccessKey获取,在这里不在赘述,根据平台指引一一配置就行
阿里云短信接入,直接从上边实例取就可以,都有现成的
3.代码接入
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
/**
* 发送短信
* @param $AccessKeyId
* @param $Secret
* @param $params
* @return bool
* @throws ClientException
*/
function send_sms ($AccessKeyId, $Secret, $params) {
if (empty($params['phone'])) {
return false;
}
// 创建客户端
AlibabaCloud::accessKeyClient($AccessKeyId, $Secret)
->regionId('cn-hangzhou')//设置客户端区域,使用该客户端且没有单独设置的请求都使用此设置
->asDefaultClient();
try {
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
->version('2017-05-25')
->action('SendSms')
->host('dysmsapi.aliyuncs.com')//指定域名
->options([
// 这里的参数可以在openAPI Explorer里面查看
'query' => [
'RigionId' => 'cn_hangzhou',
'PhoneNumbers' => $params['phone'], // 输入的手机号
'SignName' => $params['sign'], // 签名信息
'TemplateCode' => $params['code'], // 短信模板id
'TemplateParam' => $params['param'] // 可选,模板变量值,json格式
]
])
->request();
return $result->toArray();
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}
}
4.使用
public function aliyun_sms_service($phone, $code)
{
$access_key = '****';
$access_key_secret = '**********';
$sign = '短信签名名称';
$sms_template_code = '短信模板CODE';
$ret = send_sms($access_key, $access_key_secret, [
'phone' => $phone,
'code' => $sms_template_code,
'param' => json_encode(['number' => $code]),
'sign' => $sign
]);
if ($ret['Code'] == 'OK') {
return true;
} else {
return false;
}
}