<?php
namespace app\common\util;
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use think\facade\Log;
class AliSms
{
/**
* 发送短信验证码
* @param $phone
* @param $code
* @throws ClientException
*/
public function sendMessageCode($phone, $code){
Log::record("sendMessageCode begin:".$phone.",code:".$code,"debug");
AlibabaCloud::accessKeyClient(config('ali_msm.accessKeyId'), config('ali_msm.accessKeySecret'))
->regionId('cn-hangzhou')
->asDefaultClient();
try {
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
// ->scheme('https') // https | http
->version('2017-05-25')
->action('SendSms')
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options([
'query' => [
'RegionId' => config('message.RegionId'),
'PhoneNumbers' => $phone,
'SignName' => config('message.SignName'),
'TemplateCode' => config('message.TemplateCode'),
'TemplateParam' => "{'code': $code}",
],
])
->request();
Log::record("短信验证码发送结果:","debug");
Log::record(print_r($result->toArray(),true),"debug");
} catch (ClientException|ServerException $e) {
Log::record("短信验证码发送结果:","debug");
Log::record($e->getErrorMessage(),"debug");
// echo $e->getErrorMessage() . PHP_EOL;
}
}
}