49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace app\sms;
 | |
| 
 | |
| 
 | |
| use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
 | |
| use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
 | |
| use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
 | |
| use Darabonba\OpenApi\Models\Config;
 | |
| 
 | |
| class AliSms
 | |
| {
 | |
|     public static function getInstance($appId,$appKey)
 | |
|     {
 | |
|         $config = new Config([
 | |
|             'accessKeyId' => $appId,
 | |
|             'accessKeySecret' => $appKey
 | |
|         ]);
 | |
| 
 | |
|         $config->endpoint = 'dysmsapi.aliyuncs.com';
 | |
|         return new Dysmsapi($config);
 | |
|     }
 | |
| 
 | |
|     /** 阿里云发送短信
 | |
|      *   phone_numbers 手机号码
 | |
|      *  目前短信验证码模板变量为 code
 | |
|      *  其他参数根据消息模板传递
 | |
|      * @param $data
 | |
|      * @param $type
 | |
|      * @return array
 | |
|      */
 | |
|     public static function sendSms($data,$type = 1)
 | |
|     {
 | |
|         $template = env('alisms.template_sms_code');
 | |
|         if($type == 2) {
 | |
|             $template = env('alisms.template_issue_code');
 | |
|         }
 | |
|         $client = self::getInstance(env('alisms.app_id'),env('alisms.app_key'));
 | |
|         $sms = new SendSmsRequest([]);
 | |
|         $sms->phoneNumbers = $data['phone_numbers'];
 | |
|         $sms->templateCode = $template;
 | |
|         $sms->signName = env('alisms.sign_name');
 | |
| 
 | |
|         $sms->templateParam = json_encode($data);
 | |
|         $runtime = new RuntimeOptions([]);
 | |
|         $result = $client->sendSmsWithOptions($sms,$runtime);
 | |
|         return ['code' => $result->statusCode,'message' => $result->body->message];
 | |
|     }
 | |
| } |