阿里大鱼的短信接口申请和调用
阿里大鱼短信接口调用精简版(验证码类型)
接口网站
申请步骤
登录->控制台->使用短信服务->左侧(接口调用)->1.(获取AK->开始使用子用户AccessKey)。2.(添加模板)。3.(添加签名。注意:签名会成为短信开头的文字)
注意:子用户AccessKey一定要授权
调用代码
第一个文件 w.php文件
<?php
class SignatureHelper { /** * 生成签名并发起请求 * * @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 * @return bool|\stdClass 返回API接口调用结果,当发生错误时返回false */ public function request($accessKeyId, $accessKeySecret, $domain, $params, $security=false) { $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 .= "&" . $this->encode($key) . "=" . $this->encode($value); } $stringToSign = "GET&%2F&" . $this->encode(substr($sortedQueryStringTmp, 1)); $sign = base64_encode(hash_hmac("sha1", $stringToSign, $accessKeySecret . "&",true)); $signature = $this->encode($sign); $url = ($security ? 'https' : 'http')."://{$domain}/?Signature={$signature}{$sortedQueryStringTmp}"; try { $content = $this->fetchContent($url); return json_decode($content); } catch( \Exception $e) { return false; } } private function encode($str) { $res = urlencode($str); $res = preg_replace("/\+/", "%20", $res); $res = preg_replace("/\*/", "%2A", $res); $res = preg_replace("/%7E/", "~", $res); return $res; } private function fetchContent($url) { $ch = curl_init(); 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) { trigger_error("[CURL_" . curl_errno($ch) . "]: " . curl_error($ch), E_USER_ERROR); } curl_close($ch); return $rtn; }
}
第二个文件 x.php文件
<?php
require_once "w.php";
/** * 发送短信 */
function sendSms() { $params = array (); // *** 需用户填写部分 *** // fixme 必填: 请参阅 https://ak-console.aliyun.com/ 取得您的AK信息 $accessKeyId = "***************************"; $accessKeySecret = "*************************************"; // fixme 必填: 短信接收号码 $params["PhoneNumbers"] = "可以前端提供数据"; // fixme 必填: 短信签名,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign $params["SignName"] = "自己申请"; // fixme 必填: 短信模板Code,应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template $params["TemplateCode"] = "模板号和你申请的模板必须一样"; // fixme 可选: 设置模板参数, 假如模板中存在变量需要替换则为必填项 $params['TemplateParam'] = Array ( "code" => "自己写一个随机验证码即可" ); // 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实例用于设置参数,签名以及发送请求 $helper = new SignatureHelper(); // 此处可能会抛出异常,注意catch $content = $helper->request( $accessKeyId, $accessKeySecret, "dysmsapi.aliyuncs.com", array_merge($params, array( "RegionId" => "cn-hangzhou", "Action" => "SendSms", "Version" => "2017-05-25", )) ); // $content = self::object_array($content);return $content;
}// 对象转为数组// static function object_array($array)// {// if (is_object($array)) {// $array = (array)$array;// }// if (is_array($array)) {// foreach ($array as $key => $value) {// $array[$key] = self::object_array($value);// }// }// return $array;// }
ini_set("display_errors", "on"); // 显示错误提示,仅用于测试时排查问题
set_time_limit(0); // 防止脚本超时,仅用于测试使用,生产环境请按实际情况设置
header("Content-Type: text/plain; charset=utf-8"); // 输出为utf-8的文本格式,仅用于测试 // 验证发送短信(SendSms)接口
print_r(sendSms());
测试结果
阿里大鱼的短信接口申请和调用相关推荐
- 阿里大鱼 php 短信接口,dedecms使用阿里大鱼短信接口进行短信发送
阿里大鱼虽免费,但不足的是内容.签名什么都要进行审核,且短信内容必须以模版方式进行调用,不能根据自己的需求随意发送, 接下介绍下阿里大鱼免费短信具体实现方法,该方法php程序可通用. 首先要去阿里大鱼 ...
- Java 集成阿里大鱼平台短信服务发送验证码到手机
点击前往:阿里大鱼 --- 短信接口调用错误码(错误原因及处理方式) 上一篇:阿里大鱼短信服务 --- 发送验证码.短信通知 下一篇:Java 集成阿里大鱼平台短信服务发送验证码 --- 补齐注册部分 ...
- PHP对接阿里大鱼实现短信的发送
背景知识: 手机验证码这个功能几乎哪里都可以看到,那么PHP如何实现手机验证码的发送呢?下面介绍PHP对接阿里大鱼实现短信验证码发送. 1.首先登陆阿里云,点击控制台: 2.选择短信服务: 3.由于阿 ...
- 使用阿里大鱼发送短信
最近看到同事在使用阿里大鱼实现短信发送功能,稍微学了下,果然挺方便的,下面把使用方法共享一下. 1.注册账号: 去 http://www.alidayu.com/?spm=a3142.7791109. ...
- 利用阿里大鱼发送短信验证
用了很久的CSDN,也从中学到了很多的知识和解决很多问题,今天决定自己也要学会贡献,所以从今天开始我的CSDN博客知识加油站.吐舌头 闲话不多说,言归正传.今天我要分享的是利用阿里大鱼实现网站和APP ...
- php 阿里云短信服务及阿里大鱼实现短信验证码的发送
阿里云短信服务 一:使用阿里云的短信服务 ① 申请短信签名 ②申请短信模板 ③创建Access Key,获取AccessKeyId 与 AccessKeySecret.(为了安全起见,这里建议使用子用 ...
- 短信接口被恶意调用,瞬间损失两万,怎么解决?
1 我们公司的短信接口被恶意调用,瞬间损失两万 前两天的中午像往常一样热,太阳不知疲倦的在天空燃烧,热跑了云彩和鸟儿,马上就要点燃空气和我的脑神经.为我和电脑降温的,是我简陋的书桌上的小电扇,没有它的 ...
- 短信接口被恶意调用?企业短信防火墙+【中昱维信】短信验证码【Java】
短信接口被恶意调用?企业短信防火墙+[中昱维信]短信验证码[Java] 一.企业短信防火墙的实现 1.1 简介 1.2 第一步:获取防火墙帐号密钥 1.3 第二步:下载防火墙服务器 1.4 第三步:业 ...
- 避免短信接口被黑客调用的方式
短信服务接口安全是在开发或对接短信接口时尤为关注的问题.部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失.那么应该如何避免短信接口被恶意调用?本文为大家介绍一 ...
最新文章
- 硕士Nature一作谈回乡当公务员:考公竞争激烈,科研经历是宝贵财富
- echo服务器(回显服务器)
- 1.java局部变量 实例变量 类变量(静态变量)
- 点击跳转到QQ聊天界面
- Math(牛客多校第三场)
- 雷军:明年2千元以上支持5G的手机,至少发布10款
- 欺诈场景中的随机森林实践(基于SAS场景的实现)
- Percona 成为 MariaDB 基金会铜牌赞助商
- 从一个MFC工程移植对话框类到另一个MFC工程
- 【服务器】【个人图床】宝塔安装Chevereto
- datagrid 什么时候结束编辑_小规模纳税人免税政策什么时候结束?有答复了
- 隐马尔可夫模型HMM与维特比Veterbi算法(一)
- Java中String、StringBuffer和StringBuilder的区别和堆栈内存分配
- vue-router实现根据用户权限显示不同菜单-动态路由
- 高中计算机课程事例,【高中信息技术教学案例】_《高中信息技术新课程教学案例集》介绍...
- python网课答案查询_网课答案查询助手v1.0
- 28岁少帅统领旷视南京研究院,LAMDA魏秀参专访
- 网页加载慢,你知道几种原因?
- rrpp协议如何修改_RRPP 演示实例
- 斗地主不算花色算大小王,起初发到的17张牌有多少种?