AliyunSmsUtils.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. // This file is auto-generated, don't edit it. Thanks.
  3. namespace app\utils;
  4. use think\facade\Env;
  5. use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
  6. use AlibabaCloud\Tea\Utils\Utils;
  7. use Darabonba\OpenApi\Models\Config;
  8. use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
  9. use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
  10. use app\model\SmsLog;
  11. class AliyunSmsUtils {
  12. /**
  13. * 使用AK&SK初始化账号Client
  14. * @param string $accessKeyId
  15. * @param string $accessKeySecret
  16. * @return Dysmsapi Client
  17. */
  18. public static function createClient($accessKeyId, $accessKeySecret){
  19. $config = new Config([
  20. // 必填,您的 AccessKey ID
  21. "accessKeyId" => $accessKeyId,
  22. // 必填,您的 AccessKey Secret
  23. "accessKeySecret" => $accessKeySecret
  24. ]);
  25. // 访问的域名
  26. $config->endpoint = "dysmsapi.aliyuncs.com";
  27. return new Dysmsapi($config);
  28. }
  29. /**
  30. * 发送验证码
  31. */
  32. public static function sendSms($phone, $code)
  33. {
  34. $access_key_id = Env::get('aliyun.access_key_id');
  35. # 必填,您的 AccessKey Secret
  36. $access_key_secret = Env::get('aliyun.access_key_secret');
  37. # 短信签名名称
  38. $sign_name = Env::get('aliyun.sign_name');
  39. # 短信模板CODE
  40. $template_code = Env::get('aliyun.template_code');
  41. $client = self::createClient($access_key_id, $access_key_secret);
  42. $sendSmsRequest = new SendSmsRequest([
  43. "signName" => $sign_name,
  44. "templateCode" => $template_code,
  45. "phoneNumbers" => $phone,
  46. "templateParam" => "{\"code\":\"$code\"}"
  47. ]);
  48. $runtime = new RuntimeOptions([]);
  49. $resp = $client->sendSmsWithOptions($sendSmsRequest, $runtime);
  50. @SmsLog::create([
  51. "phone" => $phone, //
  52. "sign_name" => $sign_name, // 签名
  53. "template_code" => $template_code, // 模板id
  54. "template_param" => "{\"code\":\"$code\"}", // 变量
  55. "message" => $resp->body->message, // 返回值信息
  56. "request_id" => $resp->body->requestId, // 请求id
  57. "biz_id" => $resp->body->bizId, // 回执id
  58. "code" => $resp->body->code, // 发送状态
  59. "send_time" => date("Y-m-d H:i:s"), // 发送时间
  60. ]);
  61. return $resp;
  62. }
  63. }