热搜:pottle北京小瓶科技服务社区
当前位置: 北京小瓶科技服务社区 ? 查看admin的资料

北京赛车开奖直播网

从腾讯的短信平台换到阿里云,就是图的他的稳定一看php的demo和sdk就傻眼了,妈。?⒏龆绦呕挂??龆绦舠dk?
php载入一大堆文件,那还能有效率,阿里果然是java系的多,php程序员都是java硬转过来的吧


别的不说上php代码,一个函数搞定的事情:

  1. //发送手机短信
  2. //test
  3. echo send_MM('18801079XX4',"北京小瓶科技","SMS_86355020",'{"code":"12369"}');

  4. //发送成功返回true,结果仅供参数,不保证完全正确  
  5. function send_MM($PhoneNumbers,$SignName,$TemplateCode,$ParamString,$AccessKeyId='LTAIy0srVZ5b4A',$AccessKeySecret='61LcnzVoW3CPYeBqTWvpLrNWQN')  
  6. {  
  7.         $url='https://dysmsapi.aliyuncs.com/';//短信网关地址  
  8.         $Params['Action']='SendSms';//操作接口名,系统规定参数,取值:SendSms
  9.         $Params['RegionId']='cn-hangzhou';//机房信息  
  10.         $Params['AccessKeyId']=$AccessKeyId;//阿里云颁发给用户的访问服务所用的密钥ID  
  11.         $Params['Format']="JSON";//返回值的类型,支持JSON与XML。默认为XML  
  12.         $Params['TemplateParam']=$ParamString;//短信模板中的变量;数字需要转换为字符串;个人用户每个变量长度必须小于15个字符。  
  13.         $Params['PhoneNumbers']=$PhoneNumbers;//目标手机号  
  14.         $Params['SignatureMethod']='HMAC-SHA1';//签名方式,目前支持HMAC-SHA1  
  15.         $Params['SignatureNonce']=uniqid();//唯一随机数  
  16.         $Params['SignatureVersion']='1.0';//签名算法版本,目前版本是1.0  
  17.         $Params['SignName']=$SignName;//管理控制台中配置的短信签名(状态必须是验证通过)  
  18.         $Params['TemplateCode']=$TemplateCode;//管理控制台中配置的审核通过的短信模板的模板CODE(状态必须是验证通过)  
  19.         $Params['Timestamp']=gmdate("Y-m-d\TH:i:s\Z");
  20.         $Params['Version']='2017-05-25';//API版本号,当前版本2017-05-25
  21.         ksort($Params);  
  22.         
  23.         $sortedQueryStringTmp = "";
  24.         foreach ($Params as $key => $value) {
  25.                 $sortedQueryStringTmp .= "&" . aliyunmsgencode($key) . "=" . aliyunmsgencode($value);
  26.         }
  27.         $stringToSign = "GET&%2F&" . aliyunmsgencode(substr($sortedQueryStringTmp, 1));
  28.         $sign = base64_encode(hash_hmac("sha1", $stringToSign, $AccessKeySecret . "&",true));
  29.         $signature = aliyunmsgencode($sign);
  30.         
  31.         $url = $url."?Signature={$signature}{$sortedQueryStringTmp}";
  32.         //echo $url;
  33.         
  34.         $ch = curl_init();
  35.         curl_setopt($ch, CURLOPT_URL, $url);
  36.         curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  37.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  38.         if(substr($url, 0,5) == 'https') {
  39.                 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  40.                 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  41.         }
  42.         $rtn = curl_exec($ch);
  43.         if($rtn === false) {
  44.                 trigger_error("[CURL_" . curl_errno($ch) . "]: " . curl_error($ch), E_USER_ERROR);
  45.         }
  46.         curl_close($ch);
  47.         //var_dump($rtn);
  48.         $rtnobj = json_decode($rtn);
  49.         return $rtnobj->Message;
  50. }
  51. function aliyunmsgencode($str){
  52.         $res = urlencode($str);
  53.         $res = preg_replace("/\+/", "%20", $res);
  54.         $res = preg_replace("/\*/", "%2A", $res);
  55.         $res = preg_replace("/%7E/", "~", $res);
  56.         return $res;
  57. }
返回OK 发送成功
阿里和腾讯很多技术细节很坑的。?罱?畹惚粀eex坑死,果断facebook reactnative了,微信api坑也不少

所在版块:IT技术 - 发表时间: 2018-04-24 20:40

admin

管理员
帖子
260 
金钱
668 
魅力
668 
威望
668 
注册
2013-04-06 
TA的粉丝(0)