php实现阿里云API发送短信,复制就可使用
<?php
/**
*
*/
class test
{
public $accessid = "";
public $accesssecret = '';
public $gatewayUrl = "http://dysmsapi.aliyuncs.com/";
public $format = "JSON";
protected $signatureMethod = "HMAC-SHA1";
protected $regionId = "cn-hangzhou";
protected $signatureVersion = "1.0";
protected $version = "2017-05-25";
protected $action = "SendSms";
protected function getSign($params)
{
ksort($params);
$stringToSign = "";
foreach ($params as $k => $v){
$stringToSign .= "&"."$k=" . urlencode($v);
}
$stringToSign = "POST&%2F&".urlencode(substr($stringToSign, 1));
return base64_encode(hash_hmac('sha1', $stringToSign, 'VBo3X8RDhgoK7NKMcfoWhCLb2si1ym'."&", true));
}
public function curl($url, $postFields = null)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
$reponse = curl_exec($ch);
curl_close($ch);
return $reponse;
}
public function test()
{
$data["accessid"] = $this->accessid;
$data["PhoneNumbers"] = '';
$data["SignName"] = '阿里云';
$data["TemplateParam"] = '{"name":"我是测试数据","code":"123456"}';
$data["TemplateCode"] = 'SMS_XXXXXXXXXX';
$data["RegionId"] = $this->regionId;
$data["Format"] = $this->format;
$data["SignatureMethod"] = $this->signatureMethod;
$data["SignatureVersion"] = $this->signatureVersion;
$data["Action"] = $this->action;
$data["Version"] = $this->version;
date_default_timezone_set("GMT");
$data["SignatureNonce"] = uniqid();
$data["Timestamp"] = date("Y-m-d\TH:i:s\Z");
$data["Signature"] = $this->getSign(array_merge($data));
$resp = $this->curl($this->gatewayUrl, array_merge($data));
$respObject = json_decode($resp, true);
return $respObject;
}
}