SDK集成,步驟以下:
1.下載SDK工具包 SDK&DEMO[下載地址]php
2.將壓縮包解壓,拷貝出文件夾「api_sdk」,並將文件夾重命名爲「dysms」,放入本身的工程項目json
3.在用到此服務的控制器文件頭部,引入相應的模塊api
use Aliyun\Core\Config; use Aliyun\Core\Profile\DefaultProfile; use Aliyun\Core\DefaultAcsClient; use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
4.代碼實現短信發送app
/** * 判斷輸入的字符串是不是手機號 * @return [bool] true || false */ function isPhoneNum($mobile){ if(!preg_match("/^1[34578]{1}\d{9}$/",$mobile)){ return false; } return true; } /** * 發送驗證碼 * @param string $mobile 接收手機號 * @param string $code 驗證碼 * @return array */ public function sendMsg($mobile,$code){ if( empty($mobile) || empty($code) ) return array('Message'=>'缺乏參數','Code'=>'Error'); if(!isPhoneNum($mobile)) return array('Message'=>'無效的手機號','Code'=>'Error'); require_once APP_ROOT.'/Api/dysms/vendor/autoload.php'; Config::load(); //加載區域結點配置 $config = C('dysms'); //取出參數配置 $accessKeyId = $config['alims_appkey']; $accessKeySecret = $config['alims_appsecret']; $templateParam = array("code"=>$code); //模板變量替換 $signName = (empty($config['signname'])?'阿里大於測試專用':$config['signname']); $templateCode = $config['notice_templateid']; //短信模板ID //短信API產品名(短信產品名固定,無需修改) $product = "Dysmsapi"; //短信API產品域名(接口地址固定,無需修改) $domain = "dysmsapi.aliyuncs.com"; //暫時不支持多Region(目前僅支持cn-hangzhou請勿修改) $region = "cn-hangzhou"; // 初始化用戶Profile實例 $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret); // 增長服務結點 DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain); // 初始化AcsClient用於發起請求 $acsClient= new DefaultAcsClient($profile); // 初始化SendSmsRequest實例用於設置發送短信的參數 $request = new SendSmsRequest(); // 必填,設置雉短信接收號碼 $request->setPhoneNumbers($mobile); // 必填,設置簽名名稱 $request->setSignName($signName); // 必填,設置模板CODE $request->setTemplateCode($templateCode); // 可選,設置模板參數 if($templateParam) { $request->setTemplateParam(json_encode($templateParam)); } //發起訪問請求 $acsResponse = $acsClient->getAcsResponse($request); //返回請求結果 $result = json_decode(json_encode($acsResponse),true); return $result; }