阿里云PHP SMS短信服务验证码发送方法

2018-09-07 13:07

阅读:391

  开通SMS服务

  首先去这个网站开通阿里云的SMS短信服务:

  创建签名、模板

  要使用短信服务器需要先创建签名和模板,并提交给阿里云审核通过才可以正常使用短信服务。

  

  创建签名

  创建签名的时候注意一下签名名称,其他的话就不累赘了。

  

  记住签名名称

  现在请记住你创建的签名名称,一会在代码中需要使用。

  创建模板

  创建模板也很简单,阿里云已经把要如何填写写的很清楚了。

  

  查看并记住模板CODE

  返回你的控制台,当你的模板审核通过时这就会出现大于0的数。

  点击这个数,会进入模板管理面板就能看到你的模板CODE了,请记住他。

  

  

  创建并记住KeyId和KeySecret

  到控制台,把鼠标放到右上角你的用户名的位置会出现一个accessKeySecret点进去就可以创建KeyId和KeySecret了,如果他提醒你用RAM安全什么的,你看你要不要给你的员工分配权限,如果要的话就用RAM,否则就直接点击继续使用就行了。

  

  

  下载阿里云短信服务器PHP-SDK

  官方下载地址:
本教程使用SDK下载地址:

  密匙:pult

  

  创建PHP-SMS项目

  创建代码文件

  创建你的代码文件,并把这个文件放在刚才下载的SDK文件夹中的api_sdk的aliyun-php-sdk-core目录下,并把一下代码写入代码文件。

  aliyun-php-sdk-core目录里包含了SMS短信服务的各种模块,所以必须得放在这里面才能使用服务

   <?php include Config.php; include_once Request/V20170525/SendSmsRequest.php; include_once Request/V20170525/QuerySendDetailsRequest.php; $accessKeyId = LTAIvAaNs61JeBiN; //阿里云KeyId $accessKeySecret = Y3H7durYJ6GIqmJJrsdbJwPi6E8O8M; //阿里云KeySecret //短信API产品名 $product = Dysmsapi; //照写就行了 //短信API产品域名 //照着写就行了 //暂时不支持多Region $region = cn-hangzhou; //照着写就行了 //初始化访问的acsCleint $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret); DefaultProfile::addEndpoint(cn-hangzhou, cn-hangzhou, $product, $domain); $acsClient= new DefaultAcsClient($profile); $request = new SendSmsRequest; //必填-短信接收号码。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式 $request->setPhoneNumbers(123456789); //这里填你要发送的电话号码 //必填-短信签名 $request->setSignName(xx项目); //这里就是刚才让你记住的项目签名 //必填-短信模板Code $request->setTemplateCode(SMS_123456); //这里就是模板CODE //选填-假如模板中存在变量需要替换则为必填(JSON格式) $request->setTemplateParam({\name\:\郭涛\,\number\:\316\}); //选填-发送短信流水号 $request->setOutId(1234);//照填就行了 //发起访问请求 $acsResponse = $acsClient->getAcsResponse($request); var_dump($acsResponse);//返回结果

  移入Requset

  还是在下载的SDK文件夹中的api_sdk目录下,有一个交Dysmsapi的文件夹,打开这个文件夹就会看到一个叫Request的文件夹,把这个Reques。的件夹复制粘贴到aliyun-php-sdk-core里面。说实在的我搞不清阿里云这个为什么要这样分开装SDK,可能是我使用的姿势不对吧,如果有大神搞得清,还劳烦赐教小弟,好人一生平安。
移入后,打开Request\V20170525目录里有一个SendSmsRequest.php的源文件。请屏蔽第一行的空间命名。 也就是这一行namespace Dysmsapi\Reqest\V20170525;最后效果如下

   <?php /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * License); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * 就是屏蔽这一行代码!!!! class SendSmsRequest extends \RpcAcsRequest { function __construct() { parent::__construct(Dysmsapi, 2017-05-25, SendSms); } private $outId; private $signName; private $ownerId; private $resourceOwnerId; private $templateCode; private $phoneNumbers; private $resourceOwnerAccount; private $templateParam; public function getOutId() { return $this->outId; } public function setOutId($outId) { $this->outId = $outId; $this->queryParameters[OutId]=$outId; } public function getSignName() { return $this->signName; } public function setSignName($signName) { $this->signName = $signName; $this->queryParameters[SignName]=$signName; } public function getOwnerId() { return $this->ownerId; } public function setOwnerId($ownerId) { $this->ownerId = $ownerId; $this->queryParameters[OwnerId]=$ownerId; } public function getResourceOwnerId() { return $this->resourceOwnerId; } public function setResourceOwnerId($resourceOwnerId) { $this->resourceOwnerId = $resourceOwnerId; $this->queryParameters[ResourceOwnerId]=$resourceOwnerId; } public function getTemplateCode() { return $this->templateCode; } public function setTemplateCode($templateCode) { $this->templateCode = $templateCode; $this->queryParameters[TemplateCode]=$templateCode; } public function getPhoneNumbers() { return $this->phoneNumbers; } public function setPhoneNumbers($phoneNumbers) { $this->phoneNumbers = $phoneNumbers; $this->queryParameters[PhoneNumbers]=$phoneNumbers; } public function getResourceOwnerAccount() { return $this->resourceOwnerAccount; } public function setResourceOwnerAccount($resourceOwnerAccount) { $this->resourceOwnerAccount = $resourceOwnerAccount; $this->queryParameters[ResourceOwnerAccount]=$resourceOwnerAccount; } public function getTemplateParam() { return $this->templateParam; } public function setTemplateParam($templateParam) { $this->templateParam = $templateParam; $this->queryParameters[TemplateParam]=$templateParam; } }

  完成

  运行试试吧

  

  以上所述是小编给大家介绍的阿里云PHP SMS短信服务验证码发送方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!


评论


亲,登录后才可以留言!