以下是接口代码

<?php/*** 生成签名并发起请求* @param $accessKeyId string AccessKeyId (https://ak-console.aliyun.com/)* @param $accessKeySecret string AccessKeySecret* @param $domain string API接口所在域名* @param $params array API具体参数* @param $security boolean 使用https* @param $method boolean 使用GET或POST方法请求,VPC仅支持POST* @return bool|\stdClass 返回API接口调用结果,当发生错误时返回false*/function request($accessKeyId, $accessKeySecret, $domain, $params, $security=false, $method='POST') {$apiParams = array_merge(array ("SignatureMethod" => "HMAC-SHA1","SignatureNonce" => uniqid(mt_rand(0,0xffff), true),"SignatureVersion" => "1.0","AccessKeyId" => $accessKeyId,"Timestamp" => gmdate("Y-m-d\TH:i:s\Z"),"Format" => "JSON",), $params);ksort($apiParams);$sortedQueryStringTmp = "";foreach ($apiParams as $key => $value) {$sortedQueryStringTmp .= "&" . encode($key) . "=" . encode($value);}$stringToSign = "${method}&%2F&" . encode(substr($sortedQueryStringTmp, 1));$sign = base64_encode(hash_hmac("sha1", $stringToSign, $accessKeySecret . "&",true));$signature = encode($sign);$url = ($security ? 'https' : 'http')."://{$domain}/";try {$content = fetchContent($url, $method, "Signature={$signature}{$sortedQueryStringTmp}");return json_decode($content);} catch( \Exception $e) {return false;}}function encode($str){$res = urlencode($str);$res = preg_replace("/\+/", "%20", $res);$res = preg_replace("/\*/", "%2A", $res);$res = preg_replace("/%7E/", "~", $res);return $res;}function fetchContent($url, $method, $body) {$ch = curl_init();if($method == 'POST') {curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $body);} else {$url .= '?'.$body;}curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_TIMEOUT, 5);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, array("x-sdk-client" => "php/2.0.0"));if(substr($url, 0,5) == 'https') {curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);}$rtn = curl_exec($ch);if($rtn === false) {// 大多由设置等原因引起,一般无法保障后续逻辑正常执行,// 所以这里触发的是E_USER_ERROR,会终止脚本执行,无法被try...catch捕获,需要用户排查环境、网络等故障trigger_error("[CURL_" . curl_errno($ch) . "]: " . curl_error($ch), E_USER_ERROR);}curl_close($ch);return $rtn;}/*** 发送短信*/
function sendSms($mobile,$code) {$params = array ();// *** 需用户填写部分 ***// fixme 必填:是否启用https$security = false;// fixme 必填: 请参阅 https://ak-console.aliyun.com/ 取得您的AK信息$accessKeyId = "";$accessKeySecret = "";// fixme 必填: 短信接收号码 例如:15755129456$params["PhoneNumbers"] = $mobile;// fixme 必填: 短信签名,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign$params["SignName"] = "";// fixme 必填: 短信模板Code$params["TemplateCode"] = "";// fixme 可选: 设置模板参数, 假如模板中存在变量需要替换则为必填项$params['TemplateParam'] = Array ("code" => $code,"product" => "fruits");// fixme 可选: 设置发送短信流水号$params['OutId'] = "12345";// fixme 可选: 上行短信扩展码, 扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段$params['SmsUpExtendCode'] = "1234567";// *** 需用户填写部分结束, 以下代码若无必要无需更改 ***if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {$params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE);}// 初始化SignatureHelper实例用于设置参数,签名以及发送请求// 此处可能会抛出异常,注意catch$content = request($accessKeyId,$accessKeySecret,"dysmsapi.aliyuncs.com",array_merge($params, array("RegionId" => "cn-hangzhou","Action" => "SendSms","Version" => "2017-05-25",)),$security);return $content;
}ini_set("display_errors", "on"); // 显示错误提示,仅用于测试时排查问题
error_reporting(E_ALL); // 显示所有错误提示,仅用于测试时排查问题
set_time_limit(0); // 防止脚本超时,仅用于测试使用,生产环境请按实际情况设置
header("Content-Type: text/plain; charset=utf-8"); // 输出为utf-8的文本格式,仅用于测试
// 以下两个字段mobile为获取短信的手机号码,code为手机获取的验证码
$mobile = intval($_POST['mobile']);
$code = intval(rand(100000,999999));
print_r(sendSms($mobile,$code));

阿里云手机验证码获取接口【接口对接的时候要仔细把里面的参数换成自己的参数即可】相关推荐

  1. Day 5-6 阿里云手机验证码及登录代码

    短信服务 我们需要在阿里云官网进行注册登录 阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力.调用API或用群发助手,即可发送验证码.通知 ...

  2. 阿里云 OCR 图片文字识别接口使用案例(java)

    阿里云 OCR 图片文字识别接口使用案例(java) 阿里云官方接口文档 前期需要完成 购买阿里云服务 购买服务 可以购买测试服务.每个阿里云用户可以购买1次免费的500次接口请求进行测试 购买完成之 ...

  3. 手机验证码平台,怎么发送手机验证码,php开发手机验证码短信接口功能

    通过前面的学习, 你已经掌握怎么在腾讯短信平台上设置项目, 添加短信签名, 设置短信模板, 把手机验证码注册页面写好. 今天子恒老师来跟你分享怎么实现发送手机验证码给用户, 注意我们使用的是php开发 ...

  4. 对于阿里云手机 OS 大家都怎么看?

    "无锡之行没白走,看到了阿里云手机OS的样机,不管是完成度,还是概念都只有牛逼两字可形容.以服务APP为主打,地方服务由地方站提供,全国服务由阿里提供,刷手机支付从支付宝,所有的资料走云端. ...

  5. django 手机验证码获取

    注册已经完成的逻辑 之前我做了图片验证码的逻辑,然后为了完成注册,我需要再让用户验证一次手机号码. 为了验证手机号码,我必须获取用户的手机,还需要先验证图片验证码.所以在发送手机验证码之前,我需要先验 ...

  6. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  7. 阿里云--实人认证的接口

    首先进入阿里云登录页面输入用户名和密码  http://signin.aliyun.com/1944533551367997/login.htm 下面要进行 身份认证 我们需要 姓名 + 身份证号 + ...

  8. 互联网用户账号信息真实性认证(阿里云身份信息实名认证API接口服务)

    2021年10月份国家互联网信息办公室公布<互联网用户账号名称信息管理规定(征求意见稿)>.内容包括,互联网用户账号服务平台应当按照"后台实名.前台自愿"的原则,要求互 ...

  9. 阿里云调用ocr文本识别接口

    调用阿里云ocr文本识别接口示例整合 码云地址: https://gitee.com/keygod/aliyun-ocr.git

最新文章

  1. maven项目没有错,但是在项目头上有红叉的解决方法
  2. 强化学习总结(1-2)——model-base(policy evaluation;policy control)
  3. 每天十分钟系列:JS数据操作之神奇的map()
  4. foxmail占cpu 100%解决办法
  5. 局域网中搜计算机无法访问,怎么找不到共享电脑,手把手教你局域网中共享电脑找不到怎么办...
  6. can总线一帧多少字节多少位_一条CAN报文到底有多少位?-汽车电子-与非网
  7. 德国铁路公司基于模型的铁路系统设计路线图 - 基于模型的系统开发在铁路部门的应用
  8. AttributeError: module 'torch._C' has no attribute '_cuda_setDevice'(在python命令后面加上 --gpu_ids -1)
  9. 谷歌浏览器无法登陆百度贴吧
  10. 互联网裁员为什么专捡大于35的裁?
  11. DataMatrix 编码生成和译码原理即方法
  12. 计算机地图制图pdf,2计算机地图制图的数据基础.ppt
  13. gltf文件的几种形式
  14. 研究发现,每天冲洗鼻腔,可减少新冠症状和死亡风险
  15. 在ASP.NET 中检测手机浏览器(转)
  16. [转] 人生“三重境界”和“四种大智慧”
  17. 第九周 任务四
  18. 医院管理信息系统java版本
  19. ruby on rails 日志: log4r
  20. Java+SSM+Jsp+Mysql实现Web汽车信息管理系统

热门文章

  1. 全民健身时代到来,运动类APP如何秀出肌肉?
  2. 畅通工程1863(并查集)(WA的思考)
  3. UTI 唯一类型标识
  4. 微信小程序反编译wxss文件缺失_反编译任何微信小程序和如何还原wxss
  5. Emacs 安装配置使用教程
  6. windows 7编辑启动菜单 bcdedit linux,WIN7系统BCDEDIT常用命令及使用实例
  7. 量子力学奇妙之旅-算符和电子自旋
  8. LOGO设计的五大原则
  9. canopen 报文格式_CANopen协议报文处理
  10. 畅想X9BYOD式的生活