phpアリクラウドAPIメール検証送信コードを実現
2419 ワード
//
//$RecNum
//$ParamString ; ; 15 。
//$SignName ( )
//$TemplateCode CODE( )
//$AccessKeyId ID
//$AccessKeySecret
//
// true, ,
function SendSMS($RecNum,$ParamString,$SignName,$TemplateCode,$AccessKeyId,$AccessKeySecret)
{
$url='https://sms.aliyuncs.com/';//
$Params['Action']='SingleSendSms';// , , :SingleSendSms
//$Params['RegionId']='cn-hangzhou';//
$Params['AccessKeyId']=$AccessKeyId;// ID
//$Params['Format']='JSON';// , JSON XML。 XML
$Params['ParamString']=rawurlencode($ParamString);// ; ; 15 。
$Params['RecNum']=$RecNum;//
$Params['SignatureMethod']='HMAC-SHA1';// , HMAC-SHA1
$Params['SignatureNonce']=time();//
$Params['SignatureVersion']='1.0';// , 1.0
$Params['SignName']=rawurlencode($SignName);// ( )
$Params['TemplateCode']=$TemplateCode;// CODE( )
$Params['Timestamp']=rawurlencode(gmdate("Y-m-d\TH:i:s\Z"));// 。 ISO8601 ,
// UTC 。 YYYY-MM-DDThh:mm:ssZ
$Params['Version']='2016-09-27';//API , 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-urlencoded
";
$httphead['http']['header'].="Content-length:".strlen($PostData)."
";
$httphead['http']['content']=$PostData;
$httphead=stream_context_create($httphead);
$result=@simplexml_load_string(file_get_contents($url,false,$httphead));
return !isset($result->Code);
}