APIインタフェース方式を使用してアリクラウドメールインタフェースを呼び出す
1686 ワード
着信番号、アクセスキーID、アクセスキーSecret、署名名、テンプレートコード
date_default_timezone_set('GMT');
#
$phone = '';
#
$signName = '';
#AccessKeyID
$appid = '';
#AccessKeySecret
$secret = '';
# code
$tplid = '';
$tplParam = json_encode(['code' => '33887u']);
$params = [
'AccessKeyId' => $appid,
'Timestamp' => date('Y-m-d\TH:i:s\Z'),
'SignatureMethod'=>'HMAC-SHA1',
'SignatureVersion'=> '1.0',
'SignatureNonce' => uniqid(),//
//'Signature' => ''
'Format' => 'JSON',
//
'Action' => 'SendSms',
'Version' => '2017-05-25',
'RegionId' => 'cn-hangzhou',
'PhoneNumbers' => $phone,//
'SignName' => $signName,//
'TemplateCode' => $tplid,// id
'TemplateParam' => $tplParam,
];
//
ksort($params);
//http_build_query($params)
$str = '';
foreach($params as $k => $v){
$str .= urlencode($k) . '=' . urlencode($v) . '&';
}
$str = substr($str,0,-1);
$str = str_replace(['+','*','%7E'],['%20','%2A','~'],$str );
$new_str = 'GET&' . urlencode('/') . '&' . urlencode($str);
$sign = base64_encode(hash_hmac('sha1', $new_str, $secret . '&',true));
$sign = urlencode($sign);
$url = 'http://dysmsapi.aliyuncs.com/?Signature=' . $sign . '&'. $str;