阿里云短信服务
一:使用阿里云的短信服务
① 申请短信签名
②申请短信模板
③创建Access Key,获取AccessKeyId 与 AccessKeySecret。(为了安全起见,这里建议使用子用户的Access Key)
然后,下载阿里云短信服务的SDK包,/document_detail
在项目的app目录下新建Libs文件夹,将上图的两个SDK包放入Libs下。
项目根目录找到composer.json文件,打开,修改配置如下
紧接着在项目根目录执行:composer dumpautoload
引入这两个SDK包。
最后,
<?phpnamespace App\Http\Controllers;use Aliyun\Core\Config;use Aliyun\Core\Profile\DefaultProfile;use Aliyun\Core\DefaultAcsClient;use Aliyun\Api\Sms\Request\V0525\SendSmsRequest;use Aliyun\Api\Sms\Request\V0525\QuerySendDetailsRequest;// 加载区域结点配置Config::load();...public function __construct($accessKeyId="6456457897447",$accessKeySecret="66666664444444"){// $this->sms=$sms;// 短信API产品名$product = "Dysmsapi";// 短信API产品域名$domain = "";// 暂时不支持多Region$region = "cn-hangzhou";// 服务结点$endPointName = "cn-hangzhou";// 初始化用户Profile实例$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);// 增加服务结点DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);// 初始化AcsClient用于发起请求$this->acsClient = new DefaultAcsClient($profile);}...//具体实现方法function getCode($phoneNumbers="1********7",$signName="****",$templateCode="SMS_55555555",$outId=null){// 初始化SendSmsRequest实例用于设置发送短信的参数$request = new SendSmsRequest;// 必填,设置雉短信接收号码$request->setPhoneNumbers($phoneNumbers);// 必填,设置签名名称$request->setSignName($signName);// 必填,设置模板CODE$request->setTemplateCode($templateCode);$num = rand(100000,999999);// 可选,设置模板参数$request->setTemplateParam(json_encode(Array("code" => "$num")));// 可选,设置流水号if($outId) {$request->setOutId($outId);}// 发起访问请求$acsResponse = $this->acsClient->getAcsResponse($request); }
调用以上getCode方法,即可发送短信验证码。
二:使用阿里大于发送短信验证码
还是必不可少的三点,
① 申请短信签名
②申请短信模板
③获取App Key与 App Secret
把下载好的sdk包放入Libs文件夹下,
执行composer dumpautoload;
实现短信验证码的发送:
public function getCode($phoneNumbers="1*********7",$signName="****",$templateCode="SMS_666666666"){include app_path()."\Libs\sdk_php\TopSdk.php";date_default_timezone_set('Asia/Shanghai'); $c = new \TopClient;$c->appkey = '8888888888';$c->secretKey = '555555555555555555555';$req = new \AlibabaAliqinFcSmsNumSendRequest;$req->setExtend("123456");$req->setSmsType("normal");$req->setSmsFreeSignName($signName);// $num = rand(100000,999999);$req->setSmsParam("{\"code\":\"12334\",\"product\":\"alidayu\"}");$req->setRecNum($phoneNumbers);$req->setSmsTemplateCode($templateCode);$resp = $c->execute($req);// var_dump($c->execute($req));}
阿里大于短信使用api :/docs/api.htm?spm=a3142.7395905.4.6.5MNlbE&apiId=25450
相关博客:/qq_38125058/article/details/79156289