<?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; } } }