阿里云发送短信


阿里云链接:https://dysms.console.aliyun.com/overview

国内消息

第一步:新增资质

第二部:新增签名(签名即是短信的开头标题)

第三部:新增模板(分验证码和通知两种)

php开发文档:https://next.api.aliyun.com/api-tools/sdk/Dysmsapi?version=2017-05-25&language=php-tea&tab=primer-doc


Event::trigger('AliSms', [
   "phoneNumbers" => $wxPost['phone'],
   "signName" => "个人技术",
   "templateCode" => "SMS_46594552",
   "templateParam" => "{\"content\":\"{$data['reason']}\"}"
]);
<?php

namespace app\listener;

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 AliSmsListener
{
   public function handle($event)
   {
       return $this->smsgo($event);
   }

   public function createClient(){
       // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
       // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html
       $config = new Config([
           // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID
           "accessKeyId" => '123',
           // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET
           "accessKeySecret" => '123'
       ]);
       //dump($config);
       // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
       $config->endpoint = "dysmsapi.aliyuncs.com";
       return new Dysmsapi($config);
   }

   public function smsgo($param){
       $client = $this->createClient();
       $sendSmsRequest = new SendSmsRequest($param);
       $runtime = new RuntimeOptions([]);
       try {
           // 复制代码运行请自行打印 API 的返回值
           $client->sendSmsWithOptions($sendSmsRequest, $runtime);
           return true;
       }
       catch (\Exception $error) {
           return false;
       }
   }
}