Add three voice api

master
qcloudsms 6 years ago
parent 8ee474a683
commit 17a26ac8f0
  1. 61
      README.md
  2. 22
      demo/README.md
  3. 22
      demo/composer/README.md
  4. 75
      demo/composer/app.php
  5. 0
      demo/composer/composer.json
  6. 201
      demo/simple/app.php
  7. 48
      docs/Qcloud/Sms.html
  8. 231
      docs/Qcloud/Sms/FileVoiceSender.html
  9. 243
      docs/Qcloud/Sms/SmsSenderUtil.html
  10. 4
      docs/Qcloud/Sms/SmsSingleSender.html
  11. 236
      docs/Qcloud/Sms/TtsVoiceSender.html
  12. 235
      docs/Qcloud/Sms/VoiceFileUploader.html
  13. 2
      docs/SAMI_VERSION
  14. 27
      docs/classes.html
  15. 28
      docs/doc-index.html
  16. 0
      docs/js/bootstrap.min.js
  17. 2
      docs/renderer.index
  18. 17
      docs/sami.js
  19. 2
      docs/traits.html
  20. 4
      gendoc.sh
  21. 69
      src/FileVoiceSender.php
  22. 73
      src/SmsSenderUtil.php
  23. 71
      src/TtsVoiceSender.php
  24. 66
      src/VoiceFileUploader.php
  25. 13
      src/index.php

@ -73,7 +73,12 @@ qcloudsms_php采用composer进行安装,要使用qcloudsms功能,只需要
### 手动
1. 手动下载或clone最新版本qcloudsms_php代码
2. 把qcloudsms_php src目录下的代码放入Autoloading目录
2. 把qcloudsms_php放入项目目录
3. `require` qcloudsms_php src目录下面的index.php,即可使用, 如把qcloudsms放在当前目录下,只需要:
```php
require __DIR__ . "/qcloudsms_php/src/index.php";
```
## 用法
@ -261,3 +266,57 @@ try {
- **发送海外短信**
海外短信与国内短信发送类似, 发送海外短信只需替换相应国家码。
- **上传语音文件**
```php
try {
$filepath = "path/to/example.mp3";
$fileContent = file_get_contents($filepath);
if ($fileContent == false) {
throw new \Exception("can not read file " . $filepath);
}
$contentType = VoiceFileUploader::MP3;
$uploader = new VoiceFileUploader($appid, $appkey);
$result = $uploader->upload($fileContent, $contentType);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
```
> `Note` 语音文件上传功能需要联系腾讯云短信技术支持(QQ:3012203387),才能开通
- **按语音文件fid发送语音通知**
```php
try {
$fid = "73844bb649ca38f37e596ec2781ce6a56a2a3a1b.mp3";
$fvsender = new FileVoiceSender($appid, $appkey);
$result = $fvsender->send("86", $phoneNumbers[0], $fid);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
```
> `Note` 按语音文件fid发送语音通知功能需要联系腾讯云短信技术支持(QQ:3012203387),才能开通
- **指定模板发送语音通知类**
```php
try {
$templateId = 1013;
$params = ["54321"];
$tvsender = new TtsVoiceSender($appid, $appkey);
$result = $tvsender->send("86", $phoneNumbers[0], $templateId, $params);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
```

@ -1,22 +1,12 @@
腾讯云短信 PHP SDK Demo
===
腾讯云短信 PHP SDK DEMO
=====
## 使用
1. 安装依赖
## 使用composer
```sh
php /path/to/composer install
```
使用composer的项目请参考 `composer` 目录
2. 配置必要参数,如SDK appid/appkey
```sh
emacs app.php
```
## 不使用composer
3. 运行
```sh
php ./app.php
```
没有使用composer的项目请参考 `simple` 目录

@ -0,0 +1,22 @@
腾讯云短信 PHP SDK Demo
===
## 使用
1. 安装依赖
```sh
php /path/to/composer install
```
2. 配置必要参数,如SDK appid/appkey
```sh
emacs app.php
```
3. 运行
```sh
php ./app.php
```

@ -9,6 +9,10 @@ use Qcloud\Sms\SmsVoicePromptSender;
use Qcloud\Sms\SmsStatusPuller;
use Qcloud\Sms\SmsMobileStatusPuller;
use Qcloud\Sms\VoiceFileUploader;
use Qcloud\Sms\FileVoiceSender;
use Qcloud\Sms\TtsVoiceSender;
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头
@ -25,16 +29,19 @@ $templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实
// 签名
$smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
// 单发短信
try {
$ssender = new SmsSingleSender($appid, $appkey);
$result = $ssender->send(0, "86", $phoneNumber[0],
$result = $ssender->send(0, "86", $phoneNumbers[0],
"【腾讯云】您的验证码是: 5678", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 指定模板ID单发短信
try {
@ -47,6 +54,8 @@ try {
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 群发
try {
@ -58,6 +67,8 @@ try {
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 指定模板ID群发
try {
@ -70,26 +81,32 @@ try {
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 发送语音验证码
try {
$vvcsender = new SmsVoiceVerifyCodeSender($appid, $appkey);
$result = $vvcsender->send("86", $phoneNumber[0], "5678", 2, "");
$result = $vvcsender->send("86", $phoneNumbers[0], "5678", 2, "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 发送语音通知
try {
$vpsender = new SmsVoicePromptSender($appid, $appkey);
$result = $vpsender->send("86", $phoneNumber[0], 2, "5678", "");
$result = $vpsender->send("86", $phoneNumbers[0], 2, "5678", "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 拉取短信回执以及回复
try {
@ -107,6 +124,7 @@ try {
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 拉取单个手机短信状态
@ -131,3 +149,54 @@ try {
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 上传语音文件
try {
$filepath = "path/to/example.mp3";
$fileContent = file_get_contents($filepath);
if ($fileContent == false) {
throw new \Exception("can not read file " . $filepath);
}
$contentType = VoiceFileUploader::MP3;
$uploader = new VoiceFileUploader($appid, $appkey);
$result = $uploader->upload($fileContent, $contentType);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 按语音文件fid发送语音通知
try {
$fid = "73844bb649ca38f37e596ec2781ce6a56a2a3a1b.mp3";
$fvsender = new FileVoiceSender($appid, $appkey);
$result = $fvsender->send("86", $phoneNumbers[0], $fid);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 指定模板发送语音通知类
try {
$templateId = 1013;
$params = ["54321"];
$tvsender = new TtsVoiceSender($appid, $appkey);
$result = $tvsender->send("86", $phoneNumbers[0], $templateId, $params);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";

@ -0,0 +1,201 @@
<?php
require __DIR__ . "/../../src/index.php";
use Qcloud\Sms\SmsSingleSender;
use Qcloud\Sms\SmsMultiSender;
use Qcloud\Sms\SmsVoiceVerifyCodeSender;
use Qcloud\Sms\SmsVoicePromptSender;
use Qcloud\Sms\SmsStatusPuller;
use Qcloud\Sms\SmsMobileStatusPuller;
use Qcloud\Sms\VoiceFileUploader;
use Qcloud\Sms\FileVoiceSender;
use Qcloud\Sms\TtsVoiceSender;
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头
// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];
// 短信模板ID,需要在短信应用中申请
$templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
// 签名
$smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
// 单发短信
try {
$ssender = new SmsSingleSender($appid, $appkey);
$result = $ssender->send(0, "86", $phoneNumbers[0],
"【腾讯云】您的验证码是: 5678", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 指定模板ID单发短信
try {
$ssender = new SmsSingleSender($appid, $appkey);
$params = ["5678"];
$result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId,
$params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 群发
try {
$msender = new SmsMultiSender($appid, $appkey);
$result = $msender->send(0, "86", $phoneNumbers,
"【腾讯云】您的验证码是: 5678", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 指定模板ID群发
try {
$msender = new SmsMultiSender($appid, $appkey);
$params = ["5678"];
$result = $msender->sendWithParam("86", $phoneNumbers,
$templateId, $params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 发送语音验证码
try {
$vvcsender = new SmsVoiceVerifyCodeSender($appid, $appkey);
$result = $vvcsender->send("86", $phoneNumbers[0], "5678", 2, "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 发送语音通知
try {
$vpsender = new SmsVoicePromptSender($appid, $appkey);
$result = $vpsender->send("86", $phoneNumbers[0], 2, "5678", "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 拉取短信回执以及回复
try {
$sspuller = new SmsStatusPuller($appid, $appkey);
// 拉取短信回执
$callbackResult = $spuller->pullCallback(10);
$callbackRsp = json_decode($callbackResult);
echo $callbackResult;
// 拉取回复
$replyResult = $spuller->pullReply(10);
$replyRsp = json_decode($replyResult);
echo $replyResult;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 拉取单个手机短信状态
try {
$beginTime = 1516670595; // 开始时间(unix timestamp)
$endTime = 1516680595; // 结束时间(unix timestamp)
$maxNum = 10; // 单次拉取最大量
$mspuller = new SmsMobileStatusPuller($appid, $appkey);
// 拉取短信回执
$callbackResult = $mspuller->pullCallback("86", $phoneNumbers[0],
$beginTime, $endTime, $maxNum);
$callbackRsp = json_decode($callbackResult);
echo $callbackResult;
echo "\n";
// 拉取回复
$replyResult = $mspuller->pullReply("86", $phoneNumbers[0],
$beginTime, $endTime, $maxNum);
$replyRsp = json_decode($replyResult);
echo $replyResult;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 上传语音文件
try {
$filepath = "path/to/example.mp3";
$fileContent = file_get_contents($filepath);
if ($fileContent == false) {
throw new \Exception("can not read file " . $filepath);
}
$contentType = VoiceFileUploader::MP3;
$uploader = new VoiceFileUploader($appid, $appkey);
$result = $uploader->upload($fileContent, $contentType);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 按语音文件fid发送语音通知
try {
$fid = "73844bb649ca38f37e596ec2781ce6a56a2a3a1b.mp3";
$fvsender = new FileVoiceSender($appid, $appkey);
$result = $fvsender->send("86", $phoneNumbers[0], $fid);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";
// 指定模板发送语音通知类
try {
$templateId = 1013;
$params = ["54321"];
$tvsender = new TtsVoiceSender($appid, $appkey);
$result = $tvsender->send("86", $phoneNumbers[0], $templateId, $params);
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
echo "\n";

@ -80,12 +80,30 @@
<div class="container-fluid underlined">
<div class="row">
<div class="col-md-6">
<a href="../Qcloud/Sms/FileVoiceSender.html"><abbr title="Qcloud\Sms\FileVoiceSender">FileVoiceSender</abbr></a>
</div>
<div class="col-md-6">
按语音文件fid发送语音通知类
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="../Qcloud/Sms/SmsMobileStatusPuller.html"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr></a>
</div>
<div class="col-md-6">
拉取单个手机短信状态类
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="../Qcloud/Sms/SmsMultiSender.html"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr></a>
</div>
<div class="col-md-6">
群发短信类
</div>
</div>
<div class="row">
@ -94,7 +112,7 @@
</div>
<div class="col-md-6">
发送Util类
</div>
</div>
<div class="row">
@ -103,7 +121,7 @@
</div>
<div class="col-md-6">
单发短信类
</div>
</div>
<div class="row">
@ -112,7 +130,7 @@
</div>
<div class="col-md-6">
拉取短信状态类
</div>
</div>
<div class="row">
@ -121,7 +139,7 @@
</div>
<div class="col-md-6">
发送语音通知类
</div>
</div>
<div class="row">
@ -130,7 +148,25 @@
</div>
<div class="col-md-6">
发送语音验证码类
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="../Qcloud/Sms/TtsVoiceSender.html"><abbr title="Qcloud\Sms\TtsVoiceSender">TtsVoiceSender</abbr></a>
</div>
<div class="col-md-6">
指定模板发送语音通知类
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="../Qcloud/Sms/VoiceFileUploader.html"><abbr title="Qcloud\Sms\VoiceFileUploader">VoiceFileUploader</abbr></a>
</div>
<div class="col-md-6">
上传语音文件类
</div>
</div>
</div>

@ -0,0 +1,231 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="robots" content="index, follow, all" />
<title>Qcloud\Sms\FileVoiceSender | API</title>
<link rel="stylesheet" type="text/css" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../css/bootstrap-theme.min.css">
<link rel="stylesheet" type="text/css" href="../../css/sami.css">
<script src="../../js/jquery-1.11.1.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<script src="../../js/typeahead.min.js"></script>
<script src="../../sami.js"></script>
<meta name="MobileOptimized" content="width">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
</head>
<body id="class" data-name="class:Qcloud_Sms_FileVoiceSender" data-root-path="../../">
<div id="content">
<div id="left-column">
<div id="control-panel">
<script>
$('option[data-version="'+window.projectVersion+'"]').prop('selected', true);
</script>
<form id="search-form" action="../../search.html" method="GET">
<span class="glyphicon glyphicon-search"></span>
<input name="search"
class="typeahead form-control"
type="search"
placeholder="Search">
</form>
</div>
<div id="api-tree"></div>
</div>
<div id="right-column">
<nav id="site-nav" class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-elements">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../index.html">API</a>
</div>
<div class="collapse navbar-collapse" id="navbar-elements">
<ul class="nav navbar-nav">
<li><a href="../../classes.html">Classes</a></li>
<li><a href="../../namespaces.html">Namespaces</a></li>
<li><a href="../../interfaces.html">Interfaces</a></li>
<li><a href="../../traits.html">Traits</a></li>
<li><a href="../../doc-index.html">Index</a></li>
<li><a href="../../search.html">Search</a></li>
</ul>
</div>
</div>
</nav>
<div class="namespace-breadcrumbs">
<ol class="breadcrumb">
<li><span class="label label-default">class</span></li>
<li><a href="../../Qcloud.html">Qcloud</a></li><li class="backslash">\</li><li><a href="../../Qcloud/Sms.html">Sms</a></li><li class="backslash">\</li><li>FileVoiceSender</li>
</ol>
</div>
<div id="page-content">
<div class="page-header">
<h1>
FileVoiceSender
</h1>
</div>
<p> class
<strong>FileVoiceSender</strong>
</p>
<div class="description">
<p>按语音文件fid发送语音通知类</p> </div>
<h2>Methods</h2>
<div class="container-fluid underlined">
<div class="row">
<div class="col-md-2 type">
</div>
<div class="col-md-8 type">
<a href="#method___construct">__construct</a>(string $appid, string $appkey)
<p>构造函数</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
string
</div>
<div class="col-md-8 type">
<a href="#method_send">send</a>(string $nationCode, string $phoneNumber, string $fid, string $playtimes = 2, string $ext = &quot;&quot;)
<p>按语音文件fid发送语音通知</p> </div>
<div class="col-md-2"></div>
</div>
</div>
<h2>Details</h2>
<div id="method-details">
<div class="method-item">
<h3 id="method___construct">
<div class="location">at line 25</div>
<code>
<strong>__construct</strong>(string $appid, string $appkey)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>构造函数</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$appid</td>
<td>sdkappid</td>
</tr>
<tr>
<td>string</td>
<td>$appkey</td>
<td>sdkappid对应的appkey</td>
</tr>
</table>
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_send">
<div class="location">at line 44</div>
<code> string
<strong>send</strong>(string $nationCode, string $phoneNumber, string $fid, string $playtimes = 2, string $ext = &quot;&quot;)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>按语音文件fid发送语音通知</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$nationCode</td>
<td>国家码,如 86 为中国</td>
</tr>
<tr>
<td>string</td>
<td>$phoneNumber</td>
<td>不带国家码的手机号</td>
</tr>
<tr>
<td>string</td>
<td>$fid</td>
<td>语音文件fid</td>
</tr>
<tr>
<td>string</td>
<td>$playtimes</td>
<td>播放次数,可选,最多3次,默认2次</td>
</tr>
<tr>
<td>string</td>
<td>$ext</td>
<td>用户的session内容,服务端原样返回,可选字段,不需要可填空串</td>
</tr>
</table>
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>应答json字符串,详细内容参见腾讯云协议文档</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
Generated by <a href="http://sami.sensiolabs.org/">Sami, the API Documentation Generator</a>.
</div>
</div>
</div>
</body>
</html>

@ -109,7 +109,7 @@
string
</div>
<div class="col-md-8 type">
<a href="#method_calculateSig">calculateSig</a>($appkey, $random, $curTime, $phoneNumbers)
<a href="#method_calculateSig">calculateSig</a>(string $appkey, string $random, string $curTime, array $phoneNumbers)
<p>生成签名</p> </div>
<div class="col-md-2"></div>
@ -119,7 +119,7 @@
string
</div>
<div class="col-md-8 type">
<a href="#method_calculateSigForTemplAndPhoneNumbers">calculateSigForTemplAndPhoneNumbers</a>($appkey, $random, $curTime, $phoneNumbers)
<a href="#method_calculateSigForTemplAndPhoneNumbers">calculateSigForTemplAndPhoneNumbers</a>(string $appkey, string $random, string $curTime, array $phoneNumbers)
<p>生成签名</p> </div>
<div class="col-md-2"></div>
@ -140,7 +140,7 @@
string
</div>
<div class="col-md-8 type">
<a href="#method_calculateSigForTempl">calculateSigForTempl</a>($appkey, $random, $curTime, $phoneNumber)
<a href="#method_calculateSigForTempl">calculateSigForTempl</a>(string $appkey, string $random, string $curTime, array $phoneNumber)
<p>生成签名</p> </div>
<div class="col-md-2"></div>
@ -150,10 +150,30 @@
string
</div>
<div class="col-md-8 type">
<a href="#method_calculateSigForPuller">calculateSigForPuller</a>($appkey, $random, $curTime)
<a href="#method_calculateSigForPuller">calculateSigForPuller</a>(string $appkey, string $random, string $curTime)
<p>生成签名</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
string
</div>
<div class="col-md-8 type">
<a href="#method_calculateAuth">calculateAuth</a>(string $appkey, string $random, string $curTime, array $fileSha1Sum)
<p>生成上传文件授权</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
string
</div>
<div class="col-md-8 type">
<a href="#method_sha1sum">sha1sum</a>(string $content)
<p>生成sha1sum</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
@ -165,6 +185,16 @@
<p>发送请求</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
string
</div>
<div class="col-md-8 type">
<a href="#method_fetch">fetch</a>(string $req)
<p>发送请求</p> </div>
<div class="col-md-2"></div>
</div>
</div>
@ -205,7 +235,7 @@
<h3 id="method_calculateSig">
<div class="location">at line 31</div>
<code> string
<strong>calculateSig</strong>($appkey, $random, $curTime, $phoneNumbers)
<strong>calculateSig</strong>(string $appkey, string $random, string $curTime, array $phoneNumbers)
</code>
</h3>
<div class="details">
@ -219,24 +249,24 @@
<table class="table table-condensed">
<tr>
<td></td>
<td>string</td>
<td>$appkey</td>
<td></td>
<td>sdkappid对应的appkey</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$random</td>
<td></td>
<td>随机正整数</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$curTime</td>
<td></td>
<td>当前时间</td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$phoneNumbers</td>
<td></td>
<td>手机号码</td>
</tr>
</table>
@ -260,7 +290,7 @@
<h3 id="method_calculateSigForTemplAndPhoneNumbers">
<div class="location">at line 51</div>
<code> string
<strong>calculateSigForTemplAndPhoneNumbers</strong>($appkey, $random, $curTime, $phoneNumbers)
<strong>calculateSigForTemplAndPhoneNumbers</strong>(string $appkey, string $random, string $curTime, array $phoneNumbers)
</code>
</h3>
<div class="details">
@ -274,24 +304,24 @@
<table class="table table-condensed">
<tr>
<td></td>
<td>string</td>
<td>$appkey</td>
<td></td>
<td>sdkappid对应的appkey</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$random</td>
<td></td>
<td>随机正整数</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$curTime</td>
<td></td>
<td>当前时间</td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$phoneNumbers</td>
<td></td>
<td>手机号码</td>
</tr>
</table>
@ -349,7 +379,7 @@
<h3 id="method_calculateSigForTempl">
<div class="location">at line 86</div>
<code> string
<strong>calculateSigForTempl</strong>($appkey, $random, $curTime, $phoneNumber)
<strong>calculateSigForTempl</strong>(string $appkey, string $random, string $curTime, array $phoneNumber)
</code>
</h3>
<div class="details">
@ -363,24 +393,24 @@
<table class="table table-condensed">
<tr>
<td></td>
<td>string</td>
<td>$appkey</td>
<td></td>
<td>sdkappid对应的appkey</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$random</td>
<td></td>
<td>随机正整数</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$curTime</td>
<td></td>
<td>当前时间</td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$phoneNumber</td>
<td></td>
<td>手机号码</td>
</tr>
</table>
@ -404,7 +434,7 @@
<h3 id="method_calculateSigForPuller">
<div class="location">at line 102</div>
<code> string
<strong>calculateSigForPuller</strong>($appkey, $random, $curTime)
<strong>calculateSigForPuller</strong>(string $appkey, string $random, string $curTime)
</code>
</h3>
<div class="details">
@ -418,19 +448,19 @@
<table class="table table-condensed">
<tr>
<td></td>
<td>string</td>
<td>$appkey</td>
<td></td>
<td>sdkappid对应的appkey</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$random</td>
<td></td>
<td>随机正整数</td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$curTime</td>
<td></td>
<td>当前时间</td>
</tr>
</table>
@ -446,13 +476,108 @@
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_calculateAuth">
<div class="location">at line 117</div>
<code> string
<strong>calculateAuth</strong>(string $appkey, string $random, string $curTime, array $fileSha1Sum)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>生成上传文件授权</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$appkey</td>
<td>sdkappid对应的appkey</td>
</tr>
<tr>
<td>string</td>
<td>$random</td>
<td>随机正整数</td>
</tr>
<tr>
<td>string</td>
<td>$curTime</td>
<td>当前时间</td>
</tr>
<tr>
<td>array</td>
<td>$fileSha1Sum</td>
<td>文件sha1sum</td>
</tr>
</table>
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>授权结果</td>
</tr>
</table>
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_sha1sum">
<div class="location">at line 129</div>
<code> string
<strong>sha1sum</strong>(string $content)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>生成sha1sum</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$content</td>
<td>内容</td>
</tr>
</table>
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>内容sha1散列值</td>
</tr>
</table>
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_sendCurlPost">
<div class="location">at line 115</div>
<div class="location">at line 141</div>
<code> string
<strong>sendCurlPost</strong>(string $url, array $dataObj)
</code>
@ -491,6 +616,46 @@
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_fetch">
<div class="location">at line 178</div>
<code> string
<strong>fetch</strong>(string $req)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>发送请求</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$req</td>
<td>请求对象</td>
</tr>
</table>
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>应答json字符串</td>
</tr>
</table>
</div>
</div>

@ -119,7 +119,7 @@
string
</div>
<div class="col-md-8 type">
<a href="#method_sendWithParam">sendWithParam</a>(string $nationCode, string $phoneNumber, int $templId, array $params, string $sign = &quot;&quot;, string $extend = &quot;&quot;, string $ext = &quot;&quot;)
<a href="#method_sendWithParam">sendWithParam</a>(string $nationCode, string $phoneNumber, int $templId = 0, array $params, string $sign = &quot;&quot;, string $extend = &quot;&quot;, string $ext = &quot;&quot;)
<p>指定模板单发</p> </div>
<div class="col-md-2"></div>
@ -235,7 +235,7 @@
<h3 id="method_sendWithParam">
<div class="location">at line 82</div>
<code> string
<strong>sendWithParam</strong>(string $nationCode, string $phoneNumber, int $templId, array $params, string $sign = &quot;&quot;, string $extend = &quot;&quot;, string $ext = &quot;&quot;)
<strong>sendWithParam</strong>(string $nationCode, string $phoneNumber, int $templId = 0, array $params, string $sign = &quot;&quot;, string $extend = &quot;&quot;, string $ext = &quot;&quot;)
</code>
</h3>
<div class="details">

@ -0,0 +1,236 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="robots" content="index, follow, all" />
<title>Qcloud\Sms\TtsVoiceSender | API</title>
<link rel="stylesheet" type="text/css" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../css/bootstrap-theme.min.css">
<link rel="stylesheet" type="text/css" href="../../css/sami.css">
<script src="../../js/jquery-1.11.1.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<script src="../../js/typeahead.min.js"></script>
<script src="../../sami.js"></script>
<meta name="MobileOptimized" content="width">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
</head>
<body id="class" data-name="class:Qcloud_Sms_TtsVoiceSender" data-root-path="../../">
<div id="content">
<div id="left-column">
<div id="control-panel">
<script>
$('option[data-version="'+window.projectVersion+'"]').prop('selected', true);
</script>
<form id="search-form" action="../../search.html" method="GET">
<span class="glyphicon glyphicon-search"></span>
<input name="search"
class="typeahead form-control"
type="search"
placeholder="Search">
</form>
</div>
<div id="api-tree"></div>
</div>
<div id="right-column">
<nav id="site-nav" class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-elements">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../index.html">API</a>
</div>
<div class="collapse navbar-collapse" id="navbar-elements">
<ul class="nav navbar-nav">
<li><a href="../../classes.html">Classes</a></li>
<li><a href="../../namespaces.html">Namespaces</a></li>
<li><a href="../../interfaces.html">Interfaces</a></li>
<li><a href="../../traits.html">Traits</a></li>
<li><a href="../../doc-index.html">Index</a></li>
<li><a href="../../search.html">Search</a></li>
</ul>
</div>
</div>
</nav>
<div class="namespace-breadcrumbs">
<ol class="breadcrumb">
<li><span class="label label-default">class</span></li>
<li><a href="../../Qcloud.html">Qcloud</a></li><li class="backslash">\</li><li><a href="../../Qcloud/Sms.html">Sms</a></li><li class="backslash">\</li><li>TtsVoiceSender</li>
</ol>
</div>
<div id="page-content">
<div class="page-header">
<h1>
TtsVoiceSender
</h1>
</div>
<p> class
<strong>TtsVoiceSender</strong>
</p>
<div class="description">
<p>指定模板发送语音通知类</p> </div>
<h2>Methods</h2>
<div class="container-fluid underlined">
<div class="row">
<div class="col-md-2 type">
</div>
<div class="col-md-8 type">
<a href="#method___construct">__construct</a>(string $appid, string $appkey)
<p>构造函数</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
string
</div>
<div class="col-md-8 type">
<a href="#method_send">send</a>(string $nationCode, string $phoneNumber, int $templId, array $params, string $playtimes = 2, string $ext = &quot;&quot;)
<p>指定模板发送语音短信</p> </div>
<div class="col-md-2"></div>
</div>
</div>
<h2>Details</h2>
<div id="method-details">
<div class="method-item">
<h3 id="method___construct">
<div class="location">at line 25</div>
<code>
<strong>__construct</strong>(string $appid, string $appkey)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>构造函数</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$appid</td>
<td>sdkappid</td>
</tr>
<tr>
<td>string</td>
<td>$appkey</td>
<td>sdkappid对应的appkey</td>
</tr>
</table>
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_send">
<div class="location">at line 45</div>
<code> string
<strong>send</strong>(string $nationCode, string $phoneNumber, int $templId, array $params, string $playtimes = 2, string $ext = &quot;&quot;)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>指定模板发送语音短信</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$nationCode</td>
<td>国家码,如 86 为中国</td>
</tr>
<tr>
<td>string</td>
<td>$phoneNumber</td>
<td>不带国家码的手机号</td>
</tr>
<tr>
<td>int</td>
<td>$templId</td>
<td>模板 id</td>
</tr>
<tr>
<td>array</td>
<td>$params</td>
<td>模板参数列表,如模板 {1}...{2}...{3},需要带三个参数</td>
</tr>
<tr>
<td>string</td>
<td>$playtimes</td>
<td>播放次数,可选,最多3次,默认2次</td>
</tr>
<tr>
<td>string</td>
<td>$ext</td>
<td>用户的session内容,服务端原样返回,可选字段,不需要可填空串</td>
</tr>
</table>
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>应答json字符串,详细内容参见腾讯云协议文档</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
Generated by <a href="http://sami.sensiolabs.org/">Sami, the API Documentation Generator</a>.
</div>
</div>
</div>
</body>
</html>

@ -0,0 +1,235 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="robots" content="index, follow, all" />
<title>Qcloud\Sms\VoiceFileUploader | API</title>
<link rel="stylesheet" type="text/css" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../css/bootstrap-theme.min.css">
<link rel="stylesheet" type="text/css" href="../../css/sami.css">
<script src="../../js/jquery-1.11.1.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<script src="../../js/typeahead.min.js"></script>
<script src="../../sami.js"></script>
<meta name="MobileOptimized" content="width">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
</head>
<body id="class" data-name="class:Qcloud_Sms_VoiceFileUploader" data-root-path="../../">
<div id="content">
<div id="left-column">
<div id="control-panel">
<script>
$('option[data-version="'+window.projectVersion+'"]').prop('selected', true);
</script>
<form id="search-form" action="../../search.html" method="GET">
<span class="glyphicon glyphicon-search"></span>
<input name="search"
class="typeahead form-control"
type="search"
placeholder="Search">
</form>
</div>
<div id="api-tree"></div>
</div>
<div id="right-column">
<nav id="site-nav" class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-elements">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../index.html">API</a>
</div>
<div class="collapse navbar-collapse" id="navbar-elements">
<ul class="nav navbar-nav">
<li><a href="../../classes.html">Classes</a></li>
<li><a href="../../namespaces.html">Namespaces</a></li>
<li><a href="../../interfaces.html">Interfaces</a></li>
<li><a href="../../traits.html">Traits</a></li>
<li><a href="../../doc-index.html">Index</a></li>
<li><a href="../../search.html">Search</a></li>
</ul>
</div>
</div>
</nav>
<div class="namespace-breadcrumbs">
<ol class="breadcrumb">
<li><span class="label label-default">class</span></li>
<li><a href="../../Qcloud.html">Qcloud</a></li><li class="backslash">\</li><li><a href="../../Qcloud/Sms.html">Sms</a></li><li class="backslash">\</li><li>VoiceFileUploader</li>
</ol>
</div>
<div id="page-content">
<div class="page-header">
<h1>
VoiceFileUploader
</h1>
</div>
<p> class
<strong>VoiceFileUploader</strong>
</p>
<div class="description">
<p>上传语音文件类</p> </div>
<h2>Constants</h2>
<table class="table table-condensed">
<tr>
<td>WAV</td>
<td class="last">
<p><em></em></p>
<p></p>
</td>
</tr>
<tr>
<td>MP3</td>
<td class="last">
<p><em></em></p>
<p></p>
</td>
</tr>
</table>
<h2>Methods</h2>
<div class="container-fluid underlined">
<div class="row">
<div class="col-md-2 type">
</div>
<div class="col-md-8 type">
<a href="#method___construct">__construct</a>(string $appid, string $appkey)
<p>构造函数</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
string
</div>
<div class="col-md-8 type">
<a href="#method_upload">upload</a>(string $fileContent, string $contentType)
<p>上传语音文件</p> </div>
<div class="col-md-2"></div>
</div>
</div>
<h2>Details</h2>
<div id="method-details">
<div class="method-item">
<h3 id="method___construct">
<div class="location">at line 28</div>
<code>
<strong>__construct</strong>(string $appid, string $appkey)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>构造函数</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$appid</td>
<td>sdkappid</td>
</tr>
<tr>
<td>string</td>
<td>$appkey</td>
<td>sdkappid对应的appkey</td>
</tr>
</table>
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_upload">
<div class="location">at line 44</div>
<code> string
<strong>upload</strong>(string $fileContent, string $contentType)
</code>
</h3>
<div class="details">
<div class="method-description">
<p>上传语音文件</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>$fileContent</td>
<td>语音文件内容</td>
</tr>
<tr>
<td>string</td>
<td>$contentType</td>
<td>语音文件类型,目前支持 VoiceFileUploader::WAV 和 VoiceFileUploader::MP3</td>
</tr>
</table>
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>string</td>
<td>应答json字符串,详细内容参见腾讯云协议文档</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
Generated by <a href="http://sami.sensiolabs.org/">Sami, the API Documentation Generator</a>.
</div>
</div>
</div>
</body>
</html>

@ -1 +1 @@
4.0.10
4.0.14-DEV

@ -71,6 +71,15 @@
<div class="container-fluid underlined">
<div class="row">
<div class="col-md-6">
<a href="Qcloud/Sms/FileVoiceSender.html"><abbr title="Qcloud\Sms\FileVoiceSender">FileVoiceSender</abbr></a>
</div>
<div class="col-md-6">
按语音文件fid发送语音通知类
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="Qcloud/Sms/SmsMobileStatusPuller.html"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr></a>
@ -132,6 +141,24 @@
<div class="col-md-6">
发送语音验证码类
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="Qcloud/Sms/TtsVoiceSender.html"><abbr title="Qcloud\Sms\TtsVoiceSender">TtsVoiceSender</abbr></a>
</div>
<div class="col-md-6">
指定模板发送语音通知类
</div>
</div>
<div class="row">
<div class="col-md-6">
<a href="Qcloud/Sms/VoiceFileUploader.html"><abbr title="Qcloud\Sms\VoiceFileUploader">VoiceFileUploader</abbr></a>
</div>
<div class="col-md-6">
上传语音文件类
</div>
</div>
</div>
</div>

@ -75,7 +75,7 @@
<li><a href="#letterC">C</a></li>
<li class="disabled"><a href="#letterD">D</a></li>
<li class="disabled"><a href="#letterE">E</a></li>
<li class="disabled"><a href="#letterF">F</a></li>
<li><a href="#letterF">F</a></li>
<li class="disabled"><a href="#letterG">G</a></li>
<li class="disabled"><a href="#letterH">H</a></li>
<li class="disabled"><a href="#letterI">I</a></li>
@ -103,7 +103,11 @@
<dd>生成签名</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForTemplAndPhoneNumbers"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::calculateSigForTemplAndPhoneNumbers</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>生成签名</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForTempl"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::calculateSigForTempl</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>生成签名</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForPuller"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::calculateSigForPuller</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>生成签名</dd> </dl><h2 id="letterG">G</h2>
<dd>生成签名</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_calculateAuth"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::calculateAuth</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>生成上传文件授权</dd> </dl><h2 id="letterF">F</h2>
<dl id="index"><dt><a href="Qcloud/Sms/FileVoiceSender.html"><abbr title="Qcloud\Sms\FileVoiceSender">FileVoiceSender</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>按语音文件fid发送语音通知类</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_fetch"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::fetch</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>发送请求</dd> </dl><h2 id="letterG">G</h2>
<dl id="index"><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_getRandom"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::getRandom</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>生成随机数</dd> </dl><h2 id="letterP">P</h2>
<dl id="index"><dt><a href="Qcloud/Sms/SmsMobileStatusPuller.html#method_pullCallback"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr>::pullCallback</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsMobileStatusPuller.html"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr></a></em></dt>
@ -112,12 +116,14 @@
<dd></dd><dt><a href="Qcloud/Sms/SmsStatusPuller.html#method_pullCallback"><abbr title="Qcloud\Sms\SmsStatusPuller">SmsStatusPuller</abbr>::pullCallback</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsStatusPuller.html"><abbr title="Qcloud\Sms\SmsStatusPuller">SmsStatusPuller</abbr></a></em></dt>
<dd>拉取回执结果</dd><dt><a href="Qcloud/Sms/SmsStatusPuller.html#method_pullReply"><abbr title="Qcloud\Sms\SmsStatusPuller">SmsStatusPuller</abbr>::pullReply</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsStatusPuller.html"><abbr title="Qcloud\Sms\SmsStatusPuller">SmsStatusPuller</abbr></a></em></dt>
<dd>拉取回复信息</dd> </dl><h2 id="letterS">S</h2>
<dl id="index"><dt><a href="Qcloud/Sms/SmsMobileStatusPuller.html"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dl id="index"><dt><a href="Qcloud/Sms/FileVoiceSender.html#method_send"><abbr title="Qcloud\Sms\FileVoiceSender">FileVoiceSender</abbr>::send</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/FileVoiceSender.html"><abbr title="Qcloud\Sms\FileVoiceSender">FileVoiceSender</abbr></a></em></dt>
<dd>按语音文件fid发送语音通知</dd><dt><a href="Qcloud/Sms/SmsMobileStatusPuller.html"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>拉取单个手机短信状态类</dd><dt><a href="Qcloud/Sms/SmsMultiSender.html"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>群发短信类</dd><dt><a href="Qcloud/Sms/SmsMultiSender.html#method_send"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr>::send</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsMultiSender.html"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr></a></em></dt>
<dd>普通群发</dd><dt><a href="Qcloud/Sms/SmsMultiSender.html#method_sendWithParam"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr>::sendWithParam</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsMultiSender.html"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr></a></em></dt>
<dd>指定模板群发</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>发送Util类</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_sendCurlPost"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::sendCurlPost</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>发送Util类</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_sha1sum"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::sha1sum</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>生成sha1sum</dd><dt><a href="Qcloud/Sms/SmsSenderUtil.html#method_sendCurlPost"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::sendCurlPost</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<dd>发送请求</dd><dt><a href="Qcloud/Sms/SmsSingleSender.html"><abbr title="Qcloud\Sms\SmsSingleSender">SmsSingleSender</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>单发短信类</dd><dt><a href="Qcloud/Sms/SmsSingleSender.html#method_send"><abbr title="Qcloud\Sms\SmsSingleSender">SmsSingleSender</abbr>::send</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSingleSender.html"><abbr title="Qcloud\Sms\SmsSingleSender">SmsSingleSender</abbr></a></em></dt>
<dd>普通单发</dd><dt><a href="Qcloud/Sms/SmsSingleSender.html#method_sendWithParam"><abbr title="Qcloud\Sms\SmsSingleSender">SmsSingleSender</abbr>::sendWithParam</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSingleSender.html"><abbr title="Qcloud\Sms\SmsSingleSender">SmsSingleSender</abbr></a></em></dt>
@ -126,13 +132,23 @@
<dd>发送语音通知类</dd><dt><a href="Qcloud/Sms/SmsVoicePromptSender.html#method_send"><abbr title="Qcloud\Sms\SmsVoicePromptSender">SmsVoicePromptSender</abbr>::send</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsVoicePromptSender.html"><abbr title="Qcloud\Sms\SmsVoicePromptSender">SmsVoicePromptSender</abbr></a></em></dt>
<dd>发送语音通知</dd><dt><a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html"><abbr title="Qcloud\Sms\SmsVoiceVerifyCodeSender">SmsVoiceVerifyCodeSender</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>发送语音验证码类</dd><dt><a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html#method_send"><abbr title="Qcloud\Sms\SmsVoiceVerifyCodeSender">SmsVoiceVerifyCodeSender</abbr>::send</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html"><abbr title="Qcloud\Sms\SmsVoiceVerifyCodeSender">SmsVoiceVerifyCodeSender</abbr></a></em></dt>
<dd>发送语音验证码</dd> </dl><h2 id="letter_">_</h2>
<dl id="index"><dt><a href="Qcloud/Sms/SmsMobileStatusPuller.html#method___construct"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsMobileStatusPuller.html"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr></a></em></dt>
<dd>发送语音验证码</dd><dt><a href="Qcloud/Sms/TtsVoiceSender.html#method_send"><abbr title="Qcloud\Sms\TtsVoiceSender">TtsVoiceSender</abbr>::send</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/TtsVoiceSender.html"><abbr title="Qcloud\Sms\TtsVoiceSender">TtsVoiceSender</abbr></a></em></dt>
<dd>指定模板发送语音短信</dd> </dl><h2 id="letterT">T</h2>
<dl id="index"><dt><a href="Qcloud/Sms/TtsVoiceSender.html"><abbr title="Qcloud\Sms\TtsVoiceSender">TtsVoiceSender</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>指定模板发送语音通知类</dd> </dl><h2 id="letterU">U</h2>
<dl id="index"><dt><a href="Qcloud/Sms/VoiceFileUploader.html#method_upload"><abbr title="Qcloud\Sms\VoiceFileUploader">VoiceFileUploader</abbr>::upload</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/VoiceFileUploader.html"><abbr title="Qcloud\Sms\VoiceFileUploader">VoiceFileUploader</abbr></a></em></dt>
<dd>上传语音文件</dd> </dl><h2 id="letterV">V</h2>
<dl id="index"><dt><a href="Qcloud/Sms/VoiceFileUploader.html"><abbr title="Qcloud\Sms\VoiceFileUploader">VoiceFileUploader</abbr></a> &mdash; <em>Class in namespace <a href="Qcloud/Sms.html">Qcloud\Sms</a></em></dt>
<dd>上传语音文件类</dd> </dl><h2 id="letter_">_</h2>
<dl id="index"><dt><a href="Qcloud/Sms/FileVoiceSender.html#method___construct"><abbr title="Qcloud\Sms\FileVoiceSender">FileVoiceSender</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/FileVoiceSender.html"><abbr title="Qcloud\Sms\FileVoiceSender">FileVoiceSender</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/SmsMobileStatusPuller.html#method___construct"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsMobileStatusPuller.html"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/SmsMultiSender.html#method___construct"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsMultiSender.html"><abbr title="Qcloud\Sms\SmsMultiSender">SmsMultiSender</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/SmsSingleSender.html#method___construct"><abbr title="Qcloud\Sms\SmsSingleSender">SmsSingleSender</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSingleSender.html"><abbr title="Qcloud\Sms\SmsSingleSender">SmsSingleSender</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/SmsStatusPuller.html#method___construct"><abbr title="Qcloud\Sms\SmsStatusPuller">SmsStatusPuller</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsStatusPuller.html"><abbr title="Qcloud\Sms\SmsStatusPuller">SmsStatusPuller</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/SmsVoicePromptSender.html#method___construct"><abbr title="Qcloud\Sms\SmsVoicePromptSender">SmsVoicePromptSender</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsVoicePromptSender.html"><abbr title="Qcloud\Sms\SmsVoicePromptSender">SmsVoicePromptSender</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html#method___construct"><abbr title="Qcloud\Sms\SmsVoiceVerifyCodeSender">SmsVoiceVerifyCodeSender</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html"><abbr title="Qcloud\Sms\SmsVoiceVerifyCodeSender">SmsVoiceVerifyCodeSender</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/TtsVoiceSender.html#method___construct"><abbr title="Qcloud\Sms\TtsVoiceSender">TtsVoiceSender</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/TtsVoiceSender.html"><abbr title="Qcloud\Sms\TtsVoiceSender">TtsVoiceSender</abbr></a></em></dt>
<dd>构造函数</dd><dt><a href="Qcloud/Sms/VoiceFileUploader.html#method___construct"><abbr title="Qcloud\Sms\VoiceFileUploader">VoiceFileUploader</abbr>::__construct</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/VoiceFileUploader.html"><abbr title="Qcloud\Sms\VoiceFileUploader">VoiceFileUploader</abbr></a></em></dt>
<dd>构造函数</dd> </dl> </div>
<div id="footer">
Generated by <a href="http://sami.sensiolabs.org/">Sami, the API Documentation Generator</a>.

@ -1 +1 @@
C:19:"Sami\Renderer\Index":683:{a:3:{i:0;a:7:{s:32:"Qcloud\Sms\SmsMobileStatusPuller";s:40:"728a70f32eddaa9ce779996e17f2f972119b180d";s:25:"Qcloud\Sms\SmsMultiSender";s:40:"5d26b947eeb83e52b11dda40d71d2d61200ce024";s:24:"Qcloud\Sms\SmsSenderUtil";s:40:"fc30d7a06e540391d317ecaba0d23aedc888a80a";s:26:"Qcloud\Sms\SmsSingleSender";s:40:"f814e68da128f2363023997f93bc081ec2fd166a";s:26:"Qcloud\Sms\SmsStatusPuller";s:40:"956c7c7432dbe6038e1713bfbc003c361c7a6bf0";s:31:"Qcloud\Sms\SmsVoicePromptSender";s:40:"9f3c118ec943dfcf418c8adc77cbb503f3d0d5b9";s:35:"Qcloud\Sms\SmsVoiceVerifyCodeSender";s:40:"842a013386d41859b7b0e26fb6532541d9c18c51";}i:1;a:1:{i:0;s:6:"master";}i:2;a:2:{i:0;s:6:"Qcloud";i:1;s:10:"Qcloud\Sms";}}}
C:19:"Sami\Renderer\Index":931:{a:3:{i:0;a:10:{s:26:"Qcloud\Sms\FileVoiceSender";s:40:"6978e1650c392e9510bf514da5672b28050e95f7";s:32:"Qcloud\Sms\SmsMobileStatusPuller";s:40:"728a70f32eddaa9ce779996e17f2f972119b180d";s:25:"Qcloud\Sms\SmsMultiSender";s:40:"5d26b947eeb83e52b11dda40d71d2d61200ce024";s:24:"Qcloud\Sms\SmsSenderUtil";s:40:"caf29c3ee6375b8aaeb59f0a1bb1d8aca124ef47";s:26:"Qcloud\Sms\SmsSingleSender";s:40:"f814e68da128f2363023997f93bc081ec2fd166a";s:26:"Qcloud\Sms\SmsStatusPuller";s:40:"956c7c7432dbe6038e1713bfbc003c361c7a6bf0";s:31:"Qcloud\Sms\SmsVoicePromptSender";s:40:"9f3c118ec943dfcf418c8adc77cbb503f3d0d5b9";s:35:"Qcloud\Sms\SmsVoiceVerifyCodeSender";s:40:"842a013386d41859b7b0e26fb6532541d9c18c51";s:25:"Qcloud\Sms\TtsVoiceSender";s:40:"2450011b4197396ad9310c9c313fde11de00aa8e";s:28:"Qcloud\Sms\VoiceFileUploader";s:40:"af402449d620dc0b886a327fd81e062095efd3f2";}i:1;a:1:{i:0;s:6:"master";}i:2;a:2:{i:0;s:6:"Qcloud";i:1;s:10:"Qcloud\Sms";}}}

@ -5,7 +5,7 @@ window.projectVersion = 'master';
var bhIndex = null;
var rootPath = '';
var treeHtml = ' <ul> <li data-name="namespace:Qcloud" class="opened"> <div style="padding-left:0px" class="hd"> <span class="glyphicon glyphicon-play"></span><a href="Qcloud.html">Qcloud</a> </div> <div class="bd"> <ul> <li data-name="namespace:Qcloud_Sms" class="opened"> <div style="padding-left:18px" class="hd"> <span class="glyphicon glyphicon-play"></span><a href="Qcloud/Sms.html">Sms</a> </div> <div class="bd"> <ul> <li data-name="class:Qcloud_Sms_SmsMobileStatusPuller" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsMobileStatusPuller.html">SmsMobileStatusPuller</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsMultiSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsMultiSender.html">SmsMultiSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsSenderUtil" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsSenderUtil.html">SmsSenderUtil</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsSingleSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsSingleSender.html">SmsSingleSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsStatusPuller" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsStatusPuller.html">SmsStatusPuller</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsVoicePromptSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsVoicePromptSender.html">SmsVoicePromptSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsVoiceVerifyCodeSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html">SmsVoiceVerifyCodeSender</a> </div> </li> </ul></div> </li> </ul></div> </li> </ul>';
var treeHtml = ' <ul> <li data-name="namespace:Qcloud" class="opened"> <div style="padding-left:0px" class="hd"> <span class="glyphicon glyphicon-play"></span><a href="Qcloud.html">Qcloud</a> </div> <div class="bd"> <ul> <li data-name="namespace:Qcloud_Sms" class="opened"> <div style="padding-left:18px" class="hd"> <span class="glyphicon glyphicon-play"></span><a href="Qcloud/Sms.html">Sms</a> </div> <div class="bd"> <ul> <li data-name="class:Qcloud_Sms_FileVoiceSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/FileVoiceSender.html">FileVoiceSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsMobileStatusPuller" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsMobileStatusPuller.html">SmsMobileStatusPuller</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsMultiSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsMultiSender.html">SmsMultiSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsSenderUtil" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsSenderUtil.html">SmsSenderUtil</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsSingleSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsSingleSender.html">SmsSingleSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsStatusPuller" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsStatusPuller.html">SmsStatusPuller</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsVoicePromptSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsVoicePromptSender.html">SmsVoicePromptSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsVoiceVerifyCodeSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html">SmsVoiceVerifyCodeSender</a> </div> </li> <li data-name="class:Qcloud_Sms_TtsVoiceSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/TtsVoiceSender.html">TtsVoiceSender</a> </div> </li> <li data-name="class:Qcloud_Sms_VoiceFileUploader" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/VoiceFileUploader.html">VoiceFileUploader</a> </div> </li> </ul></div> </li> </ul></div> </li> </ul>';
var searchTypeClasses = {
'Namespace': 'label-default',
@ -20,6 +20,10 @@ window.projectVersion = 'master';
{"type": "Namespace", "link": "Qcloud.html", "name": "Qcloud", "doc": "Namespace Qcloud"},{"type": "Namespace", "link": "Qcloud/Sms.html", "name": "Qcloud\\Sms", "doc": "Namespace Qcloud\\Sms"},
{"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/FileVoiceSender.html", "name": "Qcloud\\Sms\\FileVoiceSender", "doc": "&quot;\u6309\u8bed\u97f3\u6587\u4ef6fid\u53d1\u9001\u8bed\u97f3\u901a\u77e5\u7c7b&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\FileVoiceSender", "fromLink": "Qcloud/Sms/FileVoiceSender.html", "link": "Qcloud/Sms/FileVoiceSender.html#method___construct", "name": "Qcloud\\Sms\\FileVoiceSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\FileVoiceSender", "fromLink": "Qcloud/Sms/FileVoiceSender.html", "link": "Qcloud/Sms/FileVoiceSender.html#method_send", "name": "Qcloud\\Sms\\FileVoiceSender::send", "doc": "&quot;\u6309\u8bed\u97f3\u6587\u4ef6fid\u53d1\u9001\u8bed\u97f3\u901a\u77e5&quot;"},
{"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html", "name": "Qcloud\\Sms\\SmsMobileStatusPuller", "doc": "&quot;\u62c9\u53d6\u5355\u4e2a\u624b\u673a\u77ed\u4fe1\u72b6\u6001\u7c7b&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsMobileStatusPuller", "fromLink": "Qcloud/Sms/SmsMobileStatusPuller.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html#method___construct", "name": "Qcloud\\Sms\\SmsMobileStatusPuller::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsMobileStatusPuller", "fromLink": "Qcloud/Sms/SmsMobileStatusPuller.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html#method_pullCallback", "name": "Qcloud\\Sms\\SmsMobileStatusPuller::pullCallback", "doc": "&quot;\u62c9\u53d6\u56de\u6267\u7ed3\u679c&quot;"},
@ -37,7 +41,10 @@ window.projectVersion = 'master';
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_phoneNumbersToArray", "name": "Qcloud\\Sms\\SmsSenderUtil::phoneNumbersToArray", "doc": "&quot;&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForTempl", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateSigForTempl", "doc": "&quot;\u751f\u6210\u7b7e\u540d&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForPuller", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateSigForPuller", "doc": "&quot;\u751f\u6210\u7b7e\u540d&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateAuth", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateAuth", "doc": "&quot;\u751f\u6210\u4e0a\u4f20\u6587\u4ef6\u6388\u6743&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_sha1sum", "name": "Qcloud\\Sms\\SmsSenderUtil::sha1sum", "doc": "&quot;\u751f\u6210sha1sum&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_sendCurlPost", "name": "Qcloud\\Sms\\SmsSenderUtil::sendCurlPost", "doc": "&quot;\u53d1\u9001\u8bf7\u6c42&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_fetch", "name": "Qcloud\\Sms\\SmsSenderUtil::fetch", "doc": "&quot;\u53d1\u9001\u8bf7\u6c42&quot;"},
{"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsSingleSender.html", "name": "Qcloud\\Sms\\SmsSingleSender", "doc": "&quot;\u5355\u53d1\u77ed\u4fe1\u7c7b&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsSingleSender", "fromLink": "Qcloud/Sms/SmsSingleSender.html", "link": "Qcloud/Sms/SmsSingleSender.html#method___construct", "name": "Qcloud\\Sms\\SmsSingleSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
@ -57,6 +64,14 @@ window.projectVersion = 'master';
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender", "fromLink": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html", "link": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html#method___construct", "name": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender", "fromLink": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html", "link": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html#method_send", "name": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender::send", "doc": "&quot;\u53d1\u9001\u8bed\u97f3\u9a8c\u8bc1\u7801&quot;"},
{"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/TtsVoiceSender.html", "name": "Qcloud\\Sms\\TtsVoiceSender", "doc": "&quot;\u6307\u5b9a\u6a21\u677f\u53d1\u9001\u8bed\u97f3\u901a\u77e5\u7c7b&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\TtsVoiceSender", "fromLink": "Qcloud/Sms/TtsVoiceSender.html", "link": "Qcloud/Sms/TtsVoiceSender.html#method___construct", "name": "Qcloud\\Sms\\TtsVoiceSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\TtsVoiceSender", "fromLink": "Qcloud/Sms/TtsVoiceSender.html", "link": "Qcloud/Sms/TtsVoiceSender.html#method_send", "name": "Qcloud\\Sms\\TtsVoiceSender::send", "doc": "&quot;\u6307\u5b9a\u6a21\u677f\u53d1\u9001\u8bed\u97f3\u77ed\u4fe1&quot;"},
{"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/VoiceFileUploader.html", "name": "Qcloud\\Sms\\VoiceFileUploader", "doc": "&quot;\u4e0a\u4f20\u8bed\u97f3\u6587\u4ef6\u7c7b&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\VoiceFileUploader", "fromLink": "Qcloud/Sms/VoiceFileUploader.html", "link": "Qcloud/Sms/VoiceFileUploader.html#method___construct", "name": "Qcloud\\Sms\\VoiceFileUploader::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\VoiceFileUploader", "fromLink": "Qcloud/Sms/VoiceFileUploader.html", "link": "Qcloud/Sms/VoiceFileUploader.html#method_upload", "name": "Qcloud\\Sms\\VoiceFileUploader::upload", "doc": "&quot;\u4e0a\u4f20\u8bed\u97f3\u6587\u4ef6&quot;"},
// Fix trailing commas in the index
{}

@ -69,7 +69,7 @@
</div>
<div class="container-fluid underlined">
</div>
</div>
</div>
<div id="footer">
Generated by <a href="http://sami.sensiolabs.org/">Sami, the API Documentation Generator</a>.

@ -0,0 +1,4 @@
#!/bin/bash
composer install
php ./vendor/sami/sami/sami.php update ./sami_config.php -v

@ -0,0 +1,69 @@
<?php
namespace Qcloud\Sms;
use Qcloud\Sms\SmsSenderUtil;
/**
* 按语音文件fid发送语音通知类
*
*/
class FileVoiceSender
{
private $url;
private $appid;
private $appkey;
private $util;
/**
* 构造函数
*
* @param string $appid sdkappid
* @param string $appkey sdkappid对应的appkey
*/
public function __construct($appid, $appkey)
{
$this->url = "https://cloud-test.tim.qq.com/v5/tlsvoicesvr/sendfvoice";
$this->appid = $appid;
$this->appkey = $appkey;
$this->util = new SmsSenderUtil();
}
/**
*
* 按语音文件fid发送语音通知
*
* @param string $nationCode 国家码,如 86 为中国
* @param string $phoneNumber 不带国家码的手机号
* @param string $fid 语音文件fid
* @param string $playtimes 播放次数,可选,最多3次,默认2次
* @param string $ext 用户的session内容,服务端原样返回,可选字段,不需要可填空串
* @return string 应答json字符串,详细内容参见腾讯云协议文档
*/
public function send($nationCode, $phoneNumber, $fid, $playtimes = 2, $ext = "")
{
$random = $this->util->getRandom();
$curTime = time();
$wholeUrl = $this->url . "?sdkappid=" . $this->appid . "&random=" . $random;
// 按照协议组织 post 包体
$data = new \stdClass();
$tel = new \stdClass();
$tel->nationcode = "".$nationCode;
$tel->mobile = "".$phoneNumber;
$data->tel = $tel;
$data->fid = $fid;
$data->playtimes = $playtimes;
// app凭证
$data->sig = $this->util->calculateSig($this->appkey, $random,
$curTime, [$phoneNumber]);
// unix时间戳,请求发起时间,如果和系统时间相差超过10分钟则会返回失败
$data->time = $curTime;
$data->ext = $ext;
return $this->util->sendCurlPost($wholeUrl, $data);
}
}

@ -22,8 +22,8 @@ class SmsSenderUtil
/**
* 生成签名
*
* @param string $appid sdkappid
* @param string $appkey sdkappid对应的appkey
* @param string $random 随机正整数
* @param string $curTime 当前时间
* @param array $phoneNumbers 手机号码
* @return string 签名结果
@ -42,8 +42,8 @@ class SmsSenderUtil
/**
* 生成签名
*
* @param string $appid sdkappid
* @param string $appkey sdkappid对应的appkey
* @param string $random 随机正整数
* @param string $curTime 当前时间
* @param array $phoneNumbers 手机号码
* @return string 签名结果
@ -77,10 +77,10 @@ class SmsSenderUtil
/**
* 生成签名
*
* @param string $appid sdkappid
* @param string $appkey sdkappid对应的appkey
* @param string $random 随机正整数
* @param string $curTime 当前时间
* @param array $phoneNumbers 手机号码
* @param array $phoneNumber 手机号码
* @return string 签名结果
*/
public function calculateSigForTempl($appkey, $random, $curTime, $phoneNumber)
@ -94,8 +94,8 @@ class SmsSenderUtil
/**
* 生成签名
*
* @param string $appid sdkappid
* @param string $appkey sdkappid对应的appkey
* @param string $random 随机正整数
* @param string $curTime 当前时间
* @return string 签名结果
*/
@ -105,6 +105,32 @@ class SmsSenderUtil
."&time=".$curTime);
}
/**
* 生成上传文件授权
*
* @param string $appkey sdkappid对应的appkey
* @param string $random 随机正整数
* @param string $curTime 当前时间
* @param array $fileSha1Sum 文件sha1sum
* @return string 授权结果
*/
public function calculateAuth($appkey, $random, $curTime, $fileSha1Sum)
{
return hash("sha256", "appkey=".$appkey."&random=".$random
."&time=".$curTime."&content-sha1=".$fileSha1Sum);
}
/**
* 生成sha1sum
*
* @param string $content 内容
* @return string 内容sha1散列值
*/
public function sha1sum($content)
{
return hash("sha1", $content);
}
/**
* 发送请求
*
@ -142,4 +168,41 @@ class SmsSenderUtil
return $result;
}
/**
* 发送请求
*
* @param string $req 请求对象
* @return string 应答json字符串
*/
public function fetch($req)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $req->url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $req->headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $req->body);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
$result = curl_exec($curl);
if (false == $result) {
// curl_exec failed
$result = "{ \"result\":" . -2 . ",\"errmsg\":\"" . curl_error($curl) . "\"}";
} else {
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if (200 != $code) {
$result = "{ \"result\":" . -1 . ",\"errmsg\":\"". $rsp
. " " . curl_error($curl) ."\"}";
}
}
curl_close($curl);
return $result;
}
}

@ -0,0 +1,71 @@
<?php
namespace Qcloud\Sms;
use Qcloud\Sms\SmsSenderUtil;
/**
* 指定模板发送语音通知类
*
*/
class TtsVoiceSender
{
private $url;
private $appid;
private $appkey;
private $util;
/**
* 构造函数
*
* @param string $appid sdkappid
* @param string $appkey sdkappid对应的appkey
*/
public function __construct($appid, $appkey)
{
$this->url = "https://cloud-test.tim.qq.com/v5/tlsvoicesvr/sendtvoice";
$this->appid = $appid;
$this->appkey = $appkey;
$this->util = new SmsSenderUtil();
}
/**
*
* 指定模板发送语音短信
*
* @param string $nationCode 国家码,如 86 为中国
* @param string $phoneNumber 不带国家码的手机号
* @param int $templId 模板 id
* @param array $params 模板参数列表,如模板 {1}...{2}...{3},需要带三个参数
* @param string $playtimes 播放次数,可选,最多3次,默认2次
* @param string $ext 用户的session内容,服务端原样返回,可选字段,不需要可填空串
* @return string 应答json字符串,详细内容参见腾讯云协议文档
*/
public function send($nationCode, $phoneNumber, $templId, $params, $playtimes = 2, $ext = "")
{
$random = $this->util->getRandom();
$curTime = time();
$wholeUrl = $this->url . "?sdkappid=" . $this->appid . "&random=" . $random;
// 按照协议组织 post 包体
$data = new \stdClass();
$tel = new \stdClass();
$tel->nationcode = "".$nationCode;
$tel->mobile = "".$phoneNumber;
$data->tel = $tel;
$data->tpl_id = $templId;
$data->params = $params;
$data->playtimes = $playtimes;
// app凭证
$data->sig = $this->util->calculateSig($this->appkey, $random,
$curTime, [$phoneNumber]);
// unix时间戳,请求发起时间,如果和系统时间相差超过10分钟则会返回失败
$data->time = $curTime;
$data->ext = $ext;
return $this->util->sendCurlPost($wholeUrl, $data);
}
}

@ -0,0 +1,66 @@
<?php
namespace Qcloud\Sms;
use Qcloud\Sms\SmsSenderUtil;
/**
* 上传语音文件类
*
*/
class VoiceFileUploader
{
private $url;
private $appid;
private $appkey;
private $util;
public const WAV = "audio/wav";
public const MP3 = "audio/mpeg";
/**
* 构造函数
*
* @param string $appid sdkappid
* @param string $appkey sdkappid对应的appkey
*/
public function __construct($appid, $appkey)
{
$this->url = "https://cloud-test.tim.qq.com/v5/tlsvoicesvr/uploadvoicefile";
$this->appid = $appid;
$this->appkey = $appkey;
$this->util = new SmsSenderUtil();
}
/**
*
* 上传语音文件
*
* @param string $fileContent 语音文件内容
* @param string $contentType 语音文件类型,目前支持 VoiceFileUploader::WAV 和 VoiceFileUploader::MP3
* @return string 应答json字符串,详细内容参见腾讯云协议文档
*/
public function upload($fileContent, $contentType)
{
assert($contentType == self::WAV || $contentType == self::MP3);
$random = $this->util->getRandom();
$curTime = time();
$fileSha1Sum = $this->util->sha1sum($fileContent);
$auth = $this->util->calculateAuth($this->appkey, $random,
$curTime, $fileSha1Sum);
$req = new \stdClass();
$req->url = $this->url . "?sdkappid=" . $this->appid
. "&random=" . $random . "&time=" . $curTime;
$req->body = $fileContent;
$req->headers = [
"Content-Type: " . $contentType,
"x-content-sha1: " . $fileSha1Sum,
"Authorization: " . $auth
];
return $this->util->fetch($req);
}
}

@ -0,0 +1,13 @@
<?php
require_once __DIR__ . "/SmsSenderUtil.php";
require_once __DIR__ . "/SmsSingleSender.php";
require_once __DIR__ . "/SmsMultiSender.php";
require_once __DIR__ . "/SmsStatusPuller.php";
require_once __DIR__ . "/SmsMobileStatusPuller.php";
require_once __DIR__ . "/SmsVoicePromptSender.php";
require_once __DIR__ . "/SmsVoiceVerifyCodeSender.php";
require_once __DIR__ . "/VoiceFileUploader.php";
require_once __DIR__ . "/FileVoiceSender.php";
require_once __DIR__ . "/TtsVoiceSender.php";
Loading…
Cancel
Save