AliSms.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace app\common\util;
  3. use AlibabaCloud\Client\AlibabaCloud;
  4. use AlibabaCloud\Client\Exception\ClientException;
  5. use AlibabaCloud\Client\Exception\ServerException;
  6. use think\facade\Log;
  7. class AliSms
  8. {
  9. /**
  10. * 发送短信验证码
  11. * @param $phone
  12. * @param $code
  13. * @throws ClientException
  14. */
  15. public function sendMessageCode($phone, $code){
  16. Log::record("sendMessageCode begin:".$phone.",code:".$code,"debug");
  17. AlibabaCloud::accessKeyClient(config('ali_msm.accessKeyId'), config('ali_msm.accessKeySecret'))
  18. ->regionId('cn-hangzhou')
  19. ->asDefaultClient();
  20. try {
  21. $result = AlibabaCloud::rpc()
  22. ->product('Dysmsapi')
  23. // ->scheme('https') // https | http
  24. ->version('2017-05-25')
  25. ->action('SendSms')
  26. ->method('POST')
  27. ->host('dysmsapi.aliyuncs.com')
  28. ->options([
  29. 'query' => [
  30. 'RegionId' => config('message.RegionId'),
  31. 'PhoneNumbers' => $phone,
  32. 'SignName' => config('message.SignName'),
  33. 'TemplateCode' => config('message.TemplateCode'),
  34. 'TemplateParam' => "{'code': $code}",
  35. ],
  36. ])
  37. ->request();
  38. Log::record("短信验证码发送结果:","debug");
  39. Log::record(print_r($result->toArray(),true),"debug");
  40. } catch (ClientException|ServerException $e) {
  41. Log::record("短信验证码发送结果:","debug");
  42. Log::record($e->getErrorMessage(),"debug");
  43. // echo $e->getErrorMessage() . PHP_EOL;
  44. }
  45. }
  46. }