阿里雲短信服務:https://dysms.console.aliyun.com
1、准備
1.1、創建簽名、模板
1.2、創建、使用阿里雲秘鑰
地址:https://usercenter.console.aliyun.com
創建AccessKey ID和AccessKey Secret
2、安裝
PHP >= 5.5、開啟curl擴展
使用composer下載阿里雲SDK
composer require alibabacloud/sdk
3、使用
3.1、新建配置文件
單獨配置文件保存信息
TemplateCode:模板代碼而非名稱
3.2、創建短信工具類
<?php
/**
* 阿里雲短信相關
*/
namespace App\Utils;
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
class AliSmsUtil
{
/**
* 發送短信驗證碼
* @param $phone:手機號碼
* @param $code:驗證碼
*/
public static function sendSmsCode($phone, $code)
{
$config = config('alisms');
$templateParam = json_encode(['code'=>$code]);
try {
AlibabaCloud::accessKeyClient($config['AccessKeyId'], $config['AccessKeySecret'])
->regionId($config['regionId']) // replace regionId as you need
->asDefaultClient();
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
// ->scheme('https') // https | http
->version('2017-05-25')
->action('SendSms')
->method('POST')
->options([
'query' => [
'PhoneNumbers' => $phone,
'SignName' => $config['SignName'],
'TemplateCode' => $config['TemplateCode'],
'TemplateParam' => $templateParam,
'RegionId' => $config['regionId'],
],
])
->request();
print_r($result->toArray());
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}
}
}
3.3、調用
在控制器或其它地方中調用
AliSmsUtil::sendSmsCode('13*******17','FwP5');