- 73浏览
- 2023-03-25
<?php
namespace app\index\controller;
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
class AliSmsUtil {
private $accessKeyId;
private $accessKeySecret;
private $signName;
private $templateCode;
public function __construct($accessKeyId, $accessKeySecret, $signName, $templateCode) {
$this->accessKeyId = $accessKeyId;
$this->accessKeySecret = $accessKeySecret;
$this->signName = $signName;
$this->templateCode = $templateCode;
AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->regionId('cn-hangzhou')->asDefaultClient();
}
/**
* 发送短信
*
* @param string $mobile 手机号码
* @param array $template 模板参数
* @return bool
* @throws ClientException
* @throws ServerException
*/
public function sendSms($mobile, $template) {
$params = [
'PhoneNumbers' => $mobile,
'SignName' => $this->signName,
'TemplateCode' => $this->templateCode,
'TemplateParam' => json_encode($template),
];
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
->version('2017-05-25')
->action('SendSms')
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options([
'query' => $params,
])
->request();
return $result->toArray()['Code'] == 'OK';
}
}
以上代码需要依赖阿里云SDK for PHP和阿里云短信SDK for PHP,可以通过composer进行引入和配置。同时需要注意,以上代码仅为一个示例,具体实现需要根据实际业务需求进行调整和完善。
使用方法
<?php
use app\index\controller\AliSmsUtil;
$accessKeyId = 'yourAccessKeyId';
$accessKeySecret = 'yourAccessKeySecret';
$signName = 'yourSignName';
$templateCode = 'yourTemplateCode';
$smsUtil = new AliSmsUtil($accessKeyId, $accessKeySecret, $signName, $templateCode);
$mobile = '12345678901';
$template = [
'code' => '123456',
];
$isSuccess = $smsUtil->sendSms($mobile, $template);
if ($isSuccess) {
echo '短信发送成功';
} else {
echo '短信发送失败';
}
以上代码中,$accessKeyId、$accessKeySecret、$signName和$templateCode需要替换为您自己的阿里云短信服务相关配置,$mobile和$template为具体的短信接收手机号和模板参数。具体的发送短信逻辑可以根据实际业务需求进行调整和完善。 
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。