精简阿里云短信服务官方SDK及DEMO
来源:互联网 发布:gitlab windows server 编辑:程序博客网 时间:2024/06/06 19:31
最近项目用到阿里云的短信服务,下载阿里云短信服务官方SDK及DEMO,包含众多的文件夹及文件,一大堆的类,类引用地址也是乱的,没法直接运行。
里面包含多个接口(短信发送API,短信查询API,短信消息API),项目只需要短信发送接口即可。
只好研究下官方的文档,精简代码。(研究的过程中发现官方的文档就是个坑,缺少很多字段)
精简后的代码如下:(精简采用POST方式JSON格式SHA1加密)
$url = 'http://dysmsapi.aliyuncs.com/';$accessKeyId = "yourAccessKeyId";$accessKeySecret = "yourAccessKeySecret";date_default_timezone_set("GMT");$Timestamp = date('Y-m-d\TH:i:s\Z');$parameters = ['PhoneNumbers' => '15000000000','SignName' => '短信签名','TemplateCode' => '短信模板Code','TemplateParam' => '{"code":"123456"}','OutId' => '1234','RegionId' => 'cn-hangzhou','AccessKeyId' => $accessKeyId,'Format' => 'JSON','SignatureMethod' => 'HMAC-SHA1','SignatureVersion' => '1.0','SignatureNonce' => uniqid(),'Timestamp' => $Timestamp,'Action' => 'SendSms','Version' => '2017-05-25',];$Signature = $this->computeSignature($parameters, $accessKeySecret);$parameters['Signature'] = $Signature;echo curl_post($url,$parameters);exit;
public function computeSignature($parameters, $accessKeySecret){ ksort($parameters); $canonicalizedQueryString = ''; foreach($parameters as $key => $value) {$canonicalizedQueryString .= '&' . $this->percentEncode($key). '=' . $this->percentEncode($value); } $stringToSign = 'POST'.'&%2F&' . $this->percentencode(substr($canonicalizedQueryString, 1));$signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret."&", true)); return $signature;}protected function percentEncode($str){ $res = urlencode($str); $res = preg_replace('/\+/', '%20', $res); $res = preg_replace('/\*/', '%2A', $res); $res = preg_replace('/%7E/', '~', $res); return $res;}
阅读全文
0 0
- 精简阿里云短信服务官方SDK及DEMO
- 阿里云直播服务 sdk demo php
- PHP接入阿里云市场 阿里短信服务DEMO
- 阿里云短信服务 nodejs版本SDK,非阿里大鱼
- 阿里云短信验证服务整套demo教程
- 阿里云短信服务SDK踩坑(php)
- 阿里云短信服务
- 阿里云短信服务
- 阿里云短信服务
- 阿里大于(alidayu)升级为阿里云短信服务(dysms)Golang新版SDK
- 阿里云 短信服务实现
- 阿里云短信服务 java
- 调用阿里云短信服务
- 阿里云短信服务api
- 开启阿里云短信服务
- 阿里云大鱼短信使用demo
- python3 阿里云短信发送Demo
- 阿里大鱼短信demo
- C# Hashtable(哈希表)
- 5-19 支票面额 (15分)
- 你假笨JVM参数
- OpencV使用fitEllipse拟合椭圆后,获取椭圆参数
- centos 7安装怎么没有界面,解决办法
- 精简阿里云短信服务官方SDK及DEMO
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- LeetCode 463. Island Perimeter
- poj3007
- 白话 P-value 这个再通俗不过了~
- Hibernate 执行普通的sql语句,并将结果封装成DTO对象
- FZU-1548 猪数
- 当当网畅销书排行爬虫(requests+BeautifulSoup)
- angular-ui-select 支持搜索的 下拉选择框 的使用