阿里云的SDK搞的真復(fù)雜,一個簡單的函數(shù)就行了,沒必要搞這么復(fù)雜
//參數(shù)說明
//$RecNum 目標(biāo)手機號
//$ParamString 短信模板中的變量;數(shù)字需要轉(zhuǎn)換為字符串;個人用戶每個變量長度必須小于15個字符。
//$SignName 管理控制臺中配置的短信簽名(狀態(tài)必須是驗證通過)
//$TemplateCode 管理控制臺中配置的審核通過的短信模板的模板CODE(狀態(tài)必須是驗證通過)
//$AccessKeyId 阿里云頒發(fā)給用戶的訪問服務(wù)所用的密鑰ID
//$AccessKeySecret 阿里云頒發(fā)給用戶的訪問服務(wù)所用的驗證串
//返回值
//發(fā)送成功返回true,結(jié)果僅供參數(shù),不保證完全正確
function SendSMS($RecNum,$ParamString,$SignName,$TemplateCode,$AccessKeyId,$AccessKeySecret)
{
? $url='https://sms.aliyuncs.com/';//短信網(wǎng)關(guān)地址
? $Params['Action']='SingleSendSms';//操作接口名,系統(tǒng)規(guī)定參數(shù),取值:SingleSendSms
? //$Params['RegionId']='cn-hangzhou';//機房信息
? $Params['AccessKeyId']=$AccessKeyId;//阿里云頒發(fā)給用戶的訪問服務(wù)所用的密鑰ID
? //$Params['Format']='JSON';//返回值的類型,支持JSON與XML。默認(rèn)為XML
? $Params['ParamString']=rawurlencode($ParamString);//短信模板中的變量;數(shù)字需要轉(zhuǎn)換為字符串;個人用戶每個變量長度必須小于15個字符。
? $Params['RecNum']=$RecNum;//目標(biāo)手機號
? $Params['SignatureMethod']='HMAC-SHA1';//簽名方式,目前支持HMAC-SHA1
? $Params['SignatureNonce']=time();//唯一隨機數(shù)
? $Params['SignatureVersion']='1.0';//簽名算法版本,目前版本是1.0
? $Params['SignName']=rawurlencode($SignName);//管理控制臺中配置的短信簽名(狀態(tài)必須是驗證通過)
? $Params['TemplateCode']=$TemplateCode;//管理控制臺中配置的審核通過的短信模板的模板CODE(狀態(tài)必須是驗證通過)
? $Params['Timestamp']=rawurlencode(gmdate("Y-m-dTH:i:sZ"));//請求的時間戳。日期格式按照ISO8601標(biāo)準(zhǔn)表示,
????????????????????????????????????????????????????????????? //并需要使用UTC時間。格式為YYYY-MM-DDThh:mm:ssZ
? $Params['Version']='2016-09-27';//API版本號,當(dāng)前版本2016-09-27
? ksort($Params);
? $PostData='';
? foreach ($Params as $k => $v) $PostData.=$k.'='.$v.'&';
? $PostData.='&Signature='.rawurlencode(base64_encode(hash_hmac('sha1','POST&%2F&'.rawurlencode(substr($PostData,0,-1)),$AccessKeySecret.'&',true)));
? $httphead['http']['method']="POST";
? $httphead['http']['header']="Content-type:application/x-www-form-urlencodedn";
? $httphead['http']['header'].="Content-length:".strlen($PostData)."n";
? $httphead['http']['content']=$PostData;
? $httphead=stream_context_create($httphead);
? $result=@simplexml_load_string(file_get_contents($url,false,$httphead));
? return !isset($result->Code);
}