官方:

错误码解析文档:https://help.aliyun.com/knowledge_detail/57717.html?spm=5176.11065259.1996646101.searchclickresult.2b5c60d4XBpIKC&aly_as=ytfSoeY-

短信文档:https://help.aliyun.com/document_detail/102364.html?spm=a2c4g.11186623.6.623.5e107535L4cPef

/*阿里云短信*//*单个发送短信*/public function sendMessageOne(){$AccessKeyId = '';$accessKeySecret = '';$Timestamp = gmdate ('Y-m-d\TH:i:s\Z' );$TemplateCode = '模版CODE';$SignName = '签名名称';$PhoneNumbers = '手机号';$TemplateParam = ['code'=>'随机验证码'];$TemplateParam = json_encode($TemplateParam);$parameters = ['AccessKeyId'=>$AccessKeyId,'Action'=>'SendSms','Format'=>'josn','RegionId'=>'cn-hangzhou','SignatureMethod'=>'HMAC-SHA1','SignatureNonce'=>'45e25e9b-0a6f-4070-8cda--5-29'.$this->createMyCode(),//随机字符串'SignatureVersion'=>'1.0','Timestamp'=>$Timestamp,'Version'=>'2017-05-25','TemplateCode'=>$TemplateCode,'PhoneNumbers'=>$PhoneNumbers,'SignName'=>$SignName,'TemplateParam'=>$TemplateParam,];$parameters['Signature'] = $this->computeSignature($parameters,$accessKeySecret);// 发送请求$target = "https://dysmsapi.aliyuncs.com/?";$result = $this->xml_to_array($this->https_request($target.http_build_query($parameters)));dump($result);die;}/*批量发送短信*/public function sendMessageAll(){$AccessKeyId = '';$accessKeySecret = '';$Timestamp = gmdate ('Y-m-d\TH:i:s\Z' );$TemplateCode = '模板code';$sign_name = '签名名称';$PhoneNumberJson = ['手机号'];$SignNameJson = [];$templateParamJson = [];foreach ($PhoneNumberJson as $k=>$v){$SignNameJson[] = $sign_name;$templateParamJson[] = ['name'=>$TemplateCode];}$PhoneNumberJson = json_encode($PhoneNumberJson);$SignNameJson = json_encode($SignNameJson);$templateParamJson = json_encode($templateParamJson);$parameters = ['AccessKeyId'=>$AccessKeyId,'Action'=>'SendBatchSms','Format'=>'josn','RegionId'=>'cn-hangzhou','SignatureMethod'=>'HMAC-SHA1','SignatureNonce'=>'45e25e9b-0a6f-4070-8cda--5-29'.$this->createMyCode(),//随机字符串'SignatureVersion'=>'1.0','Timestamp'=>$Timestamp,'Version'=>'2017-05-25','PhoneNumberJson'=>$PhoneNumberJson,'SignNameJson'=>$SignNameJson,'TemplateCode'=>$TemplateCode,'templateParamJson'=>$templateParamJson,];$parameters['Signature'] = $this->computeSignature($parameters,$accessKeySecret);// 发送请求$target = "https://dysmsapi.aliyuncs.com/?";$result = $this->xml_to_array($this->https_request($target.http_build_query($parameters)));dump($result);die;}public function computeSignature($parameters,$accessKeySecret){// 将参数Key按字典顺序排序ksort($parameters);// 生成规范化请求字符串$canonicalizedQueryString = '';foreach($parameters as $key => $value) {$canonicalizedQueryString .= '&' . $this->percentEncode($key) . '=' . $this->percentEncode($value);}// 生成用于计算签名的字符串 stringToSign$stringToSign = 'GET&%2F&' . $this->percentencode(substr($canonicalizedQueryString, 1));// 计算签名,注意accessKeySecret后面要加上字符'&'$signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret . '&', true));return $signature;}public function percentEncode($str){// 使用urlencode编码后,将"+","*","%7E"做替换即满足ECS API规定的编码规范$res = urlencode($str);$res = preg_replace('/\+/', '%20', $res);$res = preg_replace('/\*/', '%2A', $res);$res = preg_replace('/%7E/', '~', $res);return $res;}public function https_request($url){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$data = curl_exec($curl);if (curl_errno($curl)) {return 'ERROR '.curl_error($curl);}curl_close($curl);return $data;}public function xml_to_array($xml){$reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";if(preg_match_all($reg, $xml, $matches)){$count = count($matches[0]);for($i = 0; $i < $count; $i++){$subxml= $matches[2][$i];$key = $matches[1][$i];if(preg_match( $reg, $subxml )){$arr[$key] = $this->xml_to_array( $subxml );}else{$arr[$key] = $subxml;}}}return @$arr;}/*随机邀请码*/public function createMyCode(){$count = 0;do {$code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';$rand = $code[rand(0,25)].strtoupper(dechex(date('m'))).date('d').substr(time(),-5).substr(microtime(),2,5).sprintf('%02d',rand(0,99));for($a = md5( $rand, true ),$s = '0123456789ABCDEFGHIJKLMNOPQRSTUV',$d = '',$f = 0;$f < 8;$g = ord( $a[ $f ] ),$d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],$f++);$count = $d;   //保证生成的邀请码不会重复,查询表是否存在此邀请码} while ($count > 0);return $d;}

php 阿里云 批量 单个 发送短信 (拿来即用)相关推荐

  1. 阿里云接口实现发送短信验证码

    java 阿里云接口实现发送短信验证码 1. 阿里云后台配置短信相关 1.1 开通短信服务 1.2 添加模板签名 1.3 创建秘钥 1.4 短信需要后台授权--注意点 2 java--简单实现短信验证 ...

  2. 基于MFC与阿里云制作简易发送短信

    ***~~ 做到最后可能会只是不能识别汉字,但是能识别英文和数字,有待改进的地方` ` ~~ *** # 详细步骤见如下 一. 新建一个MFC项目:打开VS2013,文件->新建->项目 ...

  3. 阿里云API定时发送短信(小记)

    定时任务的代码:import com.google.gson.Gson; import com.jianke.bid.common.SMSUtils; import org.springframewo ...

  4. java 阿里云接口实现发送短信验证码

    1.先去阿里云开通短信服务: 2.添加模板及签名:需要审核,个人账户审核就几分钟就OK 先解释一下模板及签名: 标准参照:https://help.aliyun.com/document_detail ...

  5. 使用阿里云短信通知服务发送短信--工具类

    public class AliyunUtils {public static boolean sendSMS(String mobilephone,Integer status) throws Se ...

  6. Yii2 + 阿里云 后台配置发送短信

    1.登录阿里云账号之后 首先鼠标移动到你的头像上 点击AccessKey之后 创建 2.找到短信服务这里 申请签名 和 模板 3.登录yii2框架后台 填写上相对应的信息. 4.在控制器中: publ ...

  7. 移动云mas-sdk方式发送短信

    移动云mas-sdk方式发送短信 https://mas.ecloud.10086.cn/ 因业务需要,发送短信的方式由http方式改为sdk,项目使用springboot 云mas账号 http原有 ...

  8. 阿里云短信服务不对个人开放?如何在阿里云市场免费购买短信服务?云市场购买到的短信服务如何使用?(以谷粒学院项目为例)

    问题描述: 在做谷粒学院项目时,需要使用阿里云的短信服务用于注册验证,但是阿里云的短信服务目前不对个人开放了,看到弹幕说可以在云市场购买,于是果断尝试了一把,这过程中又遇到头疼的依赖版本兼容问题,好在 ...

  9. 阿里云验证码与通知短信

    1.入住阿里云 首先,注册阿里云账号或者快捷登陆 其次,实名认证 根据情况选择是企业还是个人用户(以个人用户为例) 然后选择个人支付宝授权认证 最后,根据实际情况填写个人信息 2.开通短信服务 首先, ...

  10. 阿里云——Java实现手机短信验证码功能

    目录 如何实现短信验证码功能 1.准备工作 1.1 注册 阿里云 账号,并完成实名认证.找到短信服务功能. 1.2 开通短信服务 1.3 签名与模板 1.4 获取AccessKey 1.5 打开短信控 ...

最新文章

  1. 802.11帧聚合技术
  2. 逻辑分析仪上位机DSview的简单触发设置
  3. AI Fintech 驱动智能金融时代到来
  4. boost::safe_numerics::automatic相关的测试程序
  5. 从历史角度讲现代数学
  6. Java Hashtable containsValue()方法与示例
  7. autojs长按坐标没反应_Auto.js 一个主要由无障碍服务实现的不需要Root权限的类似按键精灵的自动操作软件...
  8. using和名空间namespace
  9. 分形与数据结构第一篇(神奇的色子)
  10. 【Python】一句话 if else 简洁写法
  11. HDFS API操作的访问方式及JUnit测试类的使用
  12. sqlplus操作命令
  13. 安防互联网摄像头视频流媒体服务器EasyNVR对接海康流媒体V4.X客户端实现方法
  14. 2022-2027年中国酒店餐饮行业市场调研及未来发展趋势预测报告
  15. 汉字笔顺字帖在线生成器网站源码
  16. @RunWith注解找不到,怎么办?
  17. 如何成为名副其实的测试架构师?
  18. matlab用switch画出分段函数,matlab用switch语句绘出分段函数 在 的图像
  19. SOYO的主板如何进入BIOS系统
  20. linux下文件结构收藏

热门文章

  1. 上海十大it外包公司
  2. 聊一聊刚上线就被以太坊“弃子”的BZZ
  3. 数据结构与算法实验:实验二 链表实现一元多项式的加法/减法/乘法/求导
  4. 【电子器件笔记1】电阻参数和选型
  5. word上下的横线怎么去掉_word文档上面有一条横线怎么去掉
  6. 移动设备管理与OMA DM 协议 V5(3)
  7. python读取tif图片_在Python中读取TIFF图像元数据
  8. 超全整理——相机标定知识汇总
  9. 网卡 eth0,eth1,eth2,lo分别代表是什么 意思
  10. 程序员眼中的古典名画