thinkphp阿里云短信服務(wù)sdk運(yùn)用實(shí)例(短信發(fā)送API(SendSms)---PHP)

1.下載sdk包,目錄結(jié)構(gòu)如圖

2.把a(bǔ)pi_sdk復(fù)制放到項(xiàng)目的extend文件夾下,可以修改一下文件名api_sdk可以改成alisms,如圖


3.在alisms文件夾下鍵一個(gè)新的類,名為SendSms(自定義),里面寫一個(gè)SendSms類,(代碼如下)

namespace alisms;

//引入sdk的命名空間

use Aliyun\Core\Config;

use Aliyun\Core\Profile\DefaultProfile;

use Aliyun\Core\DefaultAcsClient;

use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;

//引入autoload.php,EXTEND_PATH就是指tp5根目錄下的extend目錄,系統(tǒng)自帶常量。alisms為我們復(fù)制api_sdk過來后更改的目錄名稱

require_once EXTEND_PATH.'alisms/vendor/autoload.php';

Config::load();? ? ? ? ? ? //加載區(qū)域結(jié)點(diǎn)配置

class SendSms

{

? ? //關(guān)鍵的配置,我們用成員屬性

? ? public $accessKeyId = '#################'; //阿里云短信獲取的accessKeyId

? ? public $accessKeySecret = '################'; //阿里云短信獲取的accessKeySecret

? ? public $signName = '#####';? ? //短信簽名,要審核通過(例如:無敵小鳥)

? ? public $templateCode = 'SMS_123456567';? ? //短信模板ID,記得要審核通過的

? ? public function send($mobile,$code)

{

? ? ? ? //獲取成員屬性

? ? ? ? $accessKeyId? ? = $this->accessKeyId;

? ? ? ? $accessKeySecret = $this->accessKeySecret;

? ? ? ? $signName? ? ? ? = $this->signName;

? ? ? ? $templateCode? ? = $this->templateCode;

? ? ? ? //短信API產(chǎn)品名(短信產(chǎn)品名固定,無需修改)

? ? ? ? $product = "Dysmsapi";

? ? ? ? //短信API產(chǎn)品域名(接口地址固定,無需修改)

? ? ? ? $domain = "dysmsapi.aliyuncs.com";

? ? ? ? //暫時(shí)不支持多Region(目前僅支持cn-hangzhou請(qǐng)勿修改)

? ? ? ? $region = "cn-hangzhou";

? ? ? ? // 初始化用戶Profile實(shí)例

? ? ? ? $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);

? ? ? ? // 增加服務(wù)結(jié)點(diǎn)

? ? ? ? DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);

? ? ? ? // 初始化AcsClient用于發(fā)起請(qǐng)求

? ? ? ? $acsClient= new DefaultAcsClient($profile);

? ? ? ? // 初始化SendSmsRequest實(shí)例用于設(shè)置發(fā)送短信的參數(shù)

? ? ? ? $request = new SendSmsRequest();

? ? ? ? // 必填,設(shè)置雉短信接收號(hào)碼

? ? ? ? $request->setPhoneNumbers($mobile);

? ? ? ? // 必填,設(shè)置簽名名稱

? ? ? ? $request->setSignName($signName);

? ? ? ? // 必填,設(shè)置模板CODE

? ? ? ? $request->setTemplateCode($templateCode);

? ? ? ? // 可選,設(shè)置模板參數(shù)

? ? ? ? if($code) {

//? ? ? ? ? ? $request->setTemplateParam(json_encode($templateParam));

? ? ? ? ? ? $request->setTemplateParam(json_encode(array("code"=>$code)));

? ? ? ? }

? ? ? ? //發(fā)起訪問請(qǐng)求

? ? ? ? $acsResponse = $acsClient->getAcsResponse($request);

? ? ? ? //返回請(qǐng)求結(jié)果,這里為為數(shù)組格式

? ? ? ? $result = json_decode(json_encode($acsResponse),true);

? ? ? ? return $result;

? ? }

}

4.在自己寫的控制器里調(diào)剛才寫的類,(代碼如下)

namespace app\mobile\controller;

use alisms\SendSms;

class PersonalController extends Controller

{

public function index(){

$sms = new SendSms();

$code = rand(100000,999999);//6位隨機(jī)數(shù)驗(yàn)證碼

$mobile=‘0000000000000000’;//手機(jī)號(hào)

$m = $sms->send($mobile,$code);

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容