PHP阿里云短信API发送代码

阿里云的SDK搞的真复杂,一个简单的函数就行了,没必要搞这么复杂

//参数说明
//$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\n";
  $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);
}
 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值