thinkphp3.2整合阿里大於
阿新 • • 發佈:2018-11-15
<?php
/**
* Created by PhpStorm.
* User: saber_H
* Date: 2017/3/18 0018
* Time: 下午 3:31
**/
namespace Home\Controller;
ini_set("display_errors", "on"); //設定開啟報錯模式,可取消
vendor('api_sdk.vendor.autoload'); //引入自動引導檔案
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient ;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;
use Think\Controller;
// 載入區域結點配置
Config::load();
class SmsComController extends Controller{
static $acsClient = null;
/**
* 取得AcsClient
*
* @return DefaultAcsClient
*/
public static function getAcsClient() {
//產品名稱:雲通訊流量服務API產品,開發者無需替換
$product = "Dysmsapi";
//產品域名,開發者無需替換
$domain = "dysmsapi.aliyuncs.com";
// TODO 此處需要替換成開發者自己的AK (https://ak-console.aliyun.com/)
$accessKeyId = "LTAIeQ**********"; // AccessKeyId
$accessKeySecret = "rki5osIGvC********************"; // AccessKeySecret
// 暫時不支援多Region
$region = "cn-hangzhou";
// 服務結點
$endPointName = "cn-hangzhou";
if(static::$acsClient == null) {
//初始化acsClient,暫不支援region化
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服務結點
DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);
// 初始化AcsClient用於發起請求
static::$acsClient = new DefaultAcsClient($profile);
}
return static::$acsClient;
}
public function smssend(){
header('Content-Type: text/plain; charset=utf-8');
$response = self::sendSms(
"例:企鵝科技", // 簡訊簽名
"SMS_105457484", // 簡訊模板編號
"131858*****", // 簡訊接收者
Array( // 簡訊模板中欄位的值
"code"=>1234,
)
// "123" // 流水號,選填
);
echo "傳送簡訊(sendSms)介面返回的結果:\n";
var_dump($response);
}
/**
* 傳送簡訊
*
* @param string $signName <p>
* 必填, 簡訊簽名,應嚴格"簽名名稱"填寫,參考:<a href="https://dysms.console.aliyun.com/dysms.htm#/sign">簡訊簽名頁</a>
* </p>
* @param string $templateCode <p>
* 必填, 簡訊模板Code,應嚴格按"模板CODE"填寫, 參考:<a href="https://dysms.console.aliyun.com/dysms.htm#/template">簡訊模板頁</a>
* (e.g. SMS_0001)
* </p>
* @param string $phoneNumbers 必填, 簡訊接收號碼 (e.g. 12345678901)
* @param array|null $templateParam <p>
* 選填, 假如模板中存在變數需要替換則為必填項 (e.g. Array("code"=>"12345", "product"=>"阿里通訊"))
* </p>
* @param string|null $outId [optional] 選填, 傳送簡訊流水號 (e.g. 1234)
* @return stdClass
*/
public static function sendSms($signName, $templateCode, $phoneNumbers, $templateParam = null, $outId = null) {
// 初始化SendSmsRequest例項用於設定傳送簡訊的引數
$request = new SendSmsRequest();
// 必填,設定雉簡訊接收號碼
$request->setPhoneNumbers($phoneNumbers);
// 必填,設定簽名名稱
$request->setSignName($signName);
// 必填,設定模板CODE
$request->setTemplateCode($templateCode);
// 可選,設定模板引數
if($templateParam) {
$request->setTemplateParam(json_encode($templateParam));
}
// 可選,設定流水號
if($outId) {
$request->setOutId($outId);
}
// 發起訪問請求
$acsResponse = static::getAcsClient()->getAcsResponse($request);
// 列印請求結果
// var_dump($acsResponse);
return $acsResponse;
}
/**
* 簡訊傳送記錄查詢
*
* @param string $phoneNumbers 必填, 簡訊接收號碼 (e.g. 12345678901)
* @param string $sendDate 必填,簡訊傳送日期,格式Ymd,支援近30天記錄查詢 (e.g. 20170710)
* @param int $pageSize 必填,分頁大小
* @param int $currentPage 必填,當前頁碼
* @param string $bizId 選填,簡訊傳送流水號 (e.g. abc123)
* @return stdClass
*/
public function queryDetails($phoneNumbers=17828893817, $sendDate=20170710, $pageSize = 10, $currentPage = 1, $bizId=null) {
// 初始化QuerySendDetailsRequest例項用於設定簡訊查詢的引數
$request = new QuerySendDetailsRequest();
// 必填,簡訊接收號碼
$request->setPhoneNumber($phoneNumbers);
// 選填,簡訊傳送流水號
$request->setBizId($bizId);
// 必填,簡訊傳送日期,支援近30天記錄查詢,格式Ymd
$request->setSendDate($sendDate);
// 必填,分頁大小
$request->setPageSize($pageSize);
// 必填,當前頁碼
$request->setCurrentPage($currentPage);
// 發起訪問請求
$acsResponse = static::getAcsClient()->getAcsResponse($request);
// 列印請求結果
// var_dump($acsResponse);
return $acsResponse;
}
}
##########################介面呼叫################################
public function sssss(){
$message = new \Home\Controller\SmsComController();
$message->smssend();
}