Add demo and SmsMobileStatusPuller

master v0.1.1
qcloudsms 7 years ago
parent a9a62e2f7f
commit 660b598a58
  1. 167
      README.md
  2. 22
      demo/README.md
  3. 133
      demo/app.php
  4. 16
      demo/composer.json
  5. 301
      docs/Qcloud/Sms/SmsMobileStatusPuller.html
  6. 9
      docs/classes.html
  7. 10
      docs/doc-index.html
  8. 2
      docs/renderer.index
  9. 7
      docs/sami.js
  10. 2
      docs/traits.html
  11. 91
      src/SmsMobileStatusPuller.php

@ -1,33 +1,58 @@
腾讯云短信 PHP SDK
===
# Overview
## 腾讯短信服务
> 目前腾讯云短信为客户提供国内短信,海外短信,语音通知三大服务。
目前`腾讯云短信`为客户提供`国内短信`、`国内语音`和`海外短信`三大服务,腾讯云短信SDK支持以下操作:
> 国内短信提供单发,群发,带模板ID单发,带模板ID群发以及短信回执与回复拉取。
### 国内短信
> 海外短信和国内短信使用同一接口,只需替换相应的国家码与手机号码,每次请求群发接口手机号码需全部为国内或者海外手机号码。
国内短信支持操作:
> 语音通知目前支持语音验证码以及语音通知功能。
- 单发短信
- 指定模板单发短信
- 群发短信
- 指定模板群发短信
- 拉取短信回执和短信回复状态
# Getting Start
> `Note` 短信拉取功能需要联系腾讯云短信技术支持(QQ:3012203387)开通权限,量大客户可以使用此功能批量拉取,其他客户不建议使用。
## 准备
### 海外短信
- [ ] 申请APPID以及APPKey
海外短信支持操作:
> 在开始本教程之前,您需要先获取APPID和APPkey,如您尚未申请,请到https://console.qcloud.com/sms/smslist 中添加应用,应用添加成功后您将获得APPID以及APPKey,注意APPID是以14xxxxx开头。
- 单发短信
- 指定模板单发短信
- 群发短信
- 指定模板群发短信
- 拉取短信回执和短信回复状态
- [ ] 申请签名
> `Note` 海外短信和国内短信使用同一接口,只需替换相应的国家码与手机号码,每次请求群发接口手机号码需全部为国内或者海外手机号码。
> 下发短信必须携带签名,在相应服务模块 *短信内容配置* 中进行申请。
### 语音通知
- [ ] 申请模板
语音通知支持操作:
> 下发短信内容必须经过审核,在相应服务 *短信内容配置* 中进行申请。
- 发送语音验证码
- 发送语音通知
完成以上三项便可开始代码开发。
## 开发
### 准备
在开始开发云短信应用之前,需要准备如下信息:
- [x] 获取SDK AppID和AppKey
云短信应用SDK `AppID`和`AppKey`可在[短信控制台](https://console.cloud.tencent.com/sms)的应用信息里获取,如您尚未添加应用,请到[短信控制台](https://console.cloud.tencent.com/sms)中添加应用。
- [x] 申请签名
一个完整的短信由短信`签名`和短信正文内容两部分组成,短信`签名`须申请和审核,`签名`可在[短信控制台](https://console.cloud.tencent.com/sms)的相应服务模块`内容配置`中进行申请。
- [x] 申请模板
同样短信或语音正文内容`模板`须申请和审核,`模板`可在[短信控制台](https://console.cloud.tencent.com/sms)的相应服务模块`内容配置`中进行申请。
## 安装
@ -43,6 +68,8 @@ qcloudsms_php采用composer进行安装,要使用qcloudsms功能,只需要
}
```
> `Note` Composer的使用可以参考demo目录下面的示例。
### 手动
1. 手动下载或clone最新版本qcloudsms_php代码
@ -50,17 +77,24 @@ qcloudsms_php采用composer进行安装,要使用qcloudsms功能,只需要
## 用法
> 若您对接口存在疑问,可以查阅[API文档](https://qcloudsms.github.io/qcloudsms_php/)。
若您对接口存在疑问,可以查阅 [开发指南](https://cloud.tencent.com/document/product/382/13297) 、[API文档](https://qcloudsms.github.io/qcloudsms_php/) 和 [错误码](https://cloud.tencent.com/document/product/382/3771)。
- **准备必要参数**
```php
$appid = 122333333;
$appkey = "111111111112132312xx";
$phoneNumber1 = "21212313123";
$phoneNumber2 = "12345678902";
$phoneNumber3 = "12345678903";
$templId = 7839;
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头
// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];
// 短信模板ID,需要在短信应用中申请
$templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
$smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
```
- **单发短信**
@ -69,9 +103,9 @@ $templId = 7839;
use Qcloud\Sms\SmsSingleSender;
try {
$sender = new SmsSingleSender($appid, $appkey);
$result = $sender->send(0, "86", $phoneNumber2,
"测试短信,普通单发,深圳,小明,上学。", "", "");
$ssender = new SmsSingleSender($appid, $appkey);
$result = $ssender->send(0, "86", $phoneNumber[0],
"【腾讯云】您的验证码是: 5678", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
@ -79,8 +113,8 @@ try {
}
```
> `Note`: 发送短信没有指定模板ID时,发送的内容需要与已审核通过的模板内容相匹配,才可能下发成功,否则返回失败
> `Note`: 如需发送海外短信,同样可以使用此接口,只需将国家码"86"改写成对应国家码号
> `Note` 如需发送海外短信,同样可以使用此接口,只需将国家码 `86` 改写成对应国家码号
> `Note` 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败
- **指定模板ID单发短信**
@ -88,11 +122,10 @@ try {
use Qcloud\Sms\SmsSingleSender;
try {
$sender = new SmsSingleSender($appid, $appkey);
$params = ["指定模板单发", "深圳", "小明"];
// 假设模板内容为:测试短信,{1},{2},{3},上学。
$result = $sender->sendWithParam("86", $phoneNumber2, $templId,
$params, "", "", "");
$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) {
@ -100,7 +133,7 @@ try {
}
```
> `Note:`无论单发短信还是指定模板ID单发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。
> `Note` 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。
- **群发**
@ -108,10 +141,9 @@ try {
use Qcloud\Sms\SmsMultiSender;
try {
$phoneNumbers = [$phoneNumber1, $phoneNumber2, $phoneNumber3];
$sender = new SmsMultiSender($appid, $appkey);
$result = $sender->send(0, "86", $phoneNumbers,
"测试短信,普通群发,深圳,小明,上学。", "", "");
$msender = new SmsMultiSender($appid, $appkey);
$result = $msender->send(0, "86", $phoneNumbers,
"【腾讯云】您的验证码是: 5678", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
@ -119,17 +151,18 @@ try {
}
```
> `Note` 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。
- **指定模板ID群发**
```php
use Qcloud\Sms\SmsMultiSender;
try {
$phoneNumbers = [$phoneNumber1, $phoneNumber2, $phoneNumber3];
$sender = new SmsMultiSender($appid, $appkey);
$params = ["指定模板群发", "深圳", "小明"];
$result = $sender->sendWithParam("86", $phoneNumbers,
$templId, $params, "", "", "");
$msender = new SmsMultiSender($appid, $appkey);
$params = ["5678"];
$result = $msender->sendWithParam("86", $phoneNumbers,
$templateId, $params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
@ -137,7 +170,8 @@ try {
}
```
> `Note:`群发一次请求最多支持200个号码,如有对号码数量有特殊需求请联系腾讯云短信技术支持(QQ:3012203387)。
> `Note` 群发一次请求最多支持200个号码,如有对号码数量有特殊需求请联系腾讯云短信技术支持(QQ:3012203387)。
> `Note` 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。
- **发送语音验证码**
@ -145,8 +179,8 @@ try {
use Qcloud\Sms\SmsVoiceVerifyCodeSender;
try {
$sender = new SmsVoiceVerifyCodeSender($appid, $appkey);
$result = $sender->send("86", $phoneNumber1, "1234", 2, "");
$vvcsender = new SmsVoiceVerifyCodeSender($appid, $appkey);
$result = $vvcsender->send("86", $phoneNumber[0], "5678", 2, "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
@ -154,7 +188,7 @@ try {
}
```
> `Note`: 语音验证码发送只需提供验证码数字,例如在msg=“123”,您收到的语音通知为“您的语音验证码是1 2 3”,如需自定义内容,可以使用语音通知。
> `Note` 语音验证码发送只需提供验证码数字,例如当msg=“5678”时,您收到的语音通知为“您的语音验证码是5678”,如需自定义内容,可以使用语音通知。
- **发送语音通知**
@ -162,8 +196,8 @@ try {
use Qcloud\Sms\SmsVoicePromptSender;
try {
$sender = new SmsVoicePromptSender($appid, $appkey);
$result = $sender->send("86", $phoneNumber1, 2, "1234", "");
$vpsender = new SmsVoicePromptSender($appid, $appkey);
$result = $vpsender->send("86", $phoneNumber[0], 2, "5678", "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
@ -177,15 +211,44 @@ try {
use Qcloud\Sms\SmsStatusPuller;
try {
$puller = new SmsStatusPuller($appid, $appkey);
$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);
}
```
> `Note` 短信拉取功能需要联系腾讯云短信技术支持(QQ:3012203387),量大客户可以使用此功能批量拉取,其他客户不建议使用。
- **拉取单个手机短信状态**
```php
use Qcloud\Sms\SmsMobileStatusPuller;
try {
$beginTime = 1511125600; // 开始时间(unix timestamp)
$endTime = 1511841600; // 结束时间(unix timestamp)
$maxNum = 10; // 单次拉取最大量
$mspuller = new SmsMobileStatusPuller($appid, $appkey);
// 拉取短信回执
$callbackResult = $puller->pullCallback(10);
$callbackResult = $mspuller->pullCallback("86", $phoneNumbers[0],
$beginTime, $endTime, $maxNum);
$callbackRsp = json_decode($callbackResult);
echo $callbackResult;
// 拉取回复
$replyResult = $puller->pullReply(10);
$replyResult = $mspuller->pullReply("86", $phoneNumbers[0],
$beginTime, $endTime, $maxNum);
$replyRsp = json_decode($replyResult);
echo $replyResult;
} catch (\Exception $e) {
@ -193,8 +256,8 @@ try {
}
```
> `Note:` 短信拉取功能需要联系腾讯云短信技术支持(QQ:3012203387),量大客户可以使用此功能批量拉取,其他客户不建议使用。
> `Note` 短信拉取功能需要联系腾讯云短信技术支持(QQ:3012203387),量大客户可以使用此功能批量拉取,其他客户不建议使用。
- **发送海外短信**
海外短信与国内短信发送类似
海外短信与国内短信发送类似, 发送海外短信只需替换相应国家码。

@ -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
```

@ -0,0 +1,133 @@
<?php
require __DIR__ . "/vendor/autoload.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;
// 短信应用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", $phoneNumber[0],
"【腾讯云】您的验证码是: 5678", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
// 指定模板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);
}
// 群发
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);
}
// 指定模板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);
}
// 发送语音验证码
try {
$vvcsender = new SmsVoiceVerifyCodeSender($appid, $appkey);
$result = $vvcsender->send("86", $phoneNumber[0], "5678", 2, "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
// 发送语音通知
try {
$vpsender = new SmsVoicePromptSender($appid, $appkey);
$result = $vpsender->send("86", $phoneNumber[0], 2, "5678", "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
// 拉取短信回执以及回复
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);
}
// 拉取单个手机短信状态
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);
}

@ -0,0 +1,16 @@
{
"name": "qcloudsms_demo",
"description": "qcloudms demo",
"type": "project",
"license": "mit",
"authors": [
{
"name": "qcloudsms",
"email": "qcloudsms@yeah.net"
}
],
"minimum-stability": "dev",
"require": {
"qcloudsms/qcloudsms_php": "*"
}
}

@ -0,0 +1,301 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="robots" content="index, follow, all" />
<title>Qcloud\Sms\SmsMobileStatusPuller | 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_SmsMobileStatusPuller" 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>SmsMobileStatusPuller</li>
</ol>
</div>
<div id="page-content">
<div class="page-header">
<h1>
SmsMobileStatusPuller
</h1>
</div>
<p> class
<strong>SmsMobileStatusPuller</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_pullCallback">pullCallback</a>(string $nationCode, string $mobile, int $beginTime, int $endTime, int $max)
<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_pullReply">pullReply</a>(string $nationCode, string $mobile, int $beginTime, int $endTime, int $max)
<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 24</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_pullCallback">
<div class="location">at line 72</div>
<code> string
<strong>pullCallback</strong>(string $nationCode, string $mobile, int $beginTime, int $endTime, int $max)
</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>$mobile</td>
<td>不带国家码的手机号</td>
</tr>
<tr>
<td>int</td>
<td>$beginTime</td>
<td>开始时间(unix timestamp)</td>
</tr>
<tr>
<td>int</td>
<td>$endTime</td>
<td>结束时间(unix timestamp)</td>
</tr>
<tr>
<td>int</td>
<td>$max</td>
<td>拉取最大条数,最多100</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 class="method-item">
<h3 id="method_pullReply">
<div class="location">at line 87</div>
<code> string
<strong>pullReply</strong>(string $nationCode, string $mobile, int $beginTime, int $endTime, int $max)
</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>$mobile</td>
<td>不带国家码的手机号</td>
</tr>
<tr>
<td>int</td>
<td>$beginTime</td>
<td>开始时间(unix timestamp)</td>
</tr>
<tr>
<td>int</td>
<td>$endTime</td>
<td>结束时间(unix timestamp)</td>
</tr>
<tr>
<td>int</td>
<td>$max</td>
<td>拉取最大条数,最多100</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>

@ -71,6 +71,15 @@
<div class="container-fluid underlined">
<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>

@ -106,11 +106,14 @@
<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/SmsSenderUtil.html#method_phoneNumbersToArray"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::phoneNumbersToArray</a>() &mdash; <em>Method in class <a href="Qcloud/Sms/SmsSenderUtil.html"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr></a></em></dt>
<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>
<dd>拉取回执结果</dd><dt><a href="Qcloud/Sms/SmsMobileStatusPuller.html#method_pullReply"><abbr title="Qcloud\Sms\SmsMobileStatusPuller">SmsMobileStatusPuller</abbr>::pullReply</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/SmsSenderUtil.html#method_phoneNumbersToArray"><abbr title="Qcloud\Sms\SmsSenderUtil">SmsSenderUtil</abbr>::phoneNumbersToArray</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/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/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>
<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>
<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>
@ -124,7 +127,8 @@
<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/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>
<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/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>

@ -1 +1 @@
C:19:"Sami\Renderer\Index":595:{a:3:{i:0;a:6:{s:25:"Qcloud\Sms\SmsMultiSender";s:40:"3014b96dcaabdb511b2bccccc1569c9e83dc2c40";s:24:"Qcloud\Sms\SmsSenderUtil";s:40:"f153a171b8782f92fa0482a936b1db2d0c4f90ca";s:26:"Qcloud\Sms\SmsSingleSender";s:40:"71f2da69394630dece2071d0fa1c09f06ba7861d";s:26:"Qcloud\Sms\SmsStatusPuller";s:40:"249992b174967d6c82c8754a16bd34d991901392";s:31:"Qcloud\Sms\SmsVoicePromptSender";s:40:"42930df749a0ca2b0af30b5e086595685b097bef";s:35:"Qcloud\Sms\SmsVoiceVerifyCodeSender";s:40:"ec1d96de6e559177f5ae1a1f6aa3649ea5fe34a0";}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":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";}}}

@ -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_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_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 searchTypeClasses = {
'Namespace': 'label-default',
@ -20,6 +20,11 @@ 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/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;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsMobileStatusPuller", "fromLink": "Qcloud/Sms/SmsMobileStatusPuller.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html#method_pullReply", "name": "Qcloud\\Sms\\SmsMobileStatusPuller::pullReply", "doc": "&quot;\u62c9\u53d6\u56de\u590d\u4fe1\u606f&quot;"},
{"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsMultiSender.html", "name": "Qcloud\\Sms\\SmsMultiSender", "doc": "&quot;\u7fa4\u53d1\u77ed\u4fe1\u7c7b&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsMultiSender", "fromLink": "Qcloud/Sms/SmsMultiSender.html", "link": "Qcloud/Sms/SmsMultiSender.html#method___construct", "name": "Qcloud\\Sms\\SmsMultiSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
{"type": "Method", "fromName": "Qcloud\\Sms\\SmsMultiSender", "fromLink": "Qcloud/Sms/SmsMultiSender.html", "link": "Qcloud/Sms/SmsMultiSender.html#method_send", "name": "Qcloud\\Sms\\SmsMultiSender::send", "doc": "&quot;\u666e\u901a\u7fa4\u53d1&quot;"},

@ -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,91 @@
<?php
namespace Qcloud\Sms;
use Qcloud\Sms\SmsSenderUtil;
/**
* 拉取单个手机短信状态类
*
*/
class SmsMobileStatusPuller
{
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://yun.tim.qq.com/v5/tlssmssvr/pullstatus4mobile";
$this->appid = $appid;
$this->appkey = $appkey;
$this->util = new SmsSenderUtil();
}
/**
* 拉取回执结果
*
* @param int $type 拉取类型,0表示回执结果,1表示回复信息
* @param string $nationCode 国家码,如 86 为中国
* @param string $mobile 不带国家码的手机号
* @param int $beginTime 开始时间(unix timestamp)
* @param int $endTime 结束时间(unix timestamp)
* @param int $max 拉取最大条数,最多100
* @return string 应答json字符串,详细内容参见腾讯云协议文档
*/
private function pull($type, $nationCode, $mobile, $beginTime, $endTime, $max)
{
$random = $this->util->getRandom();
$curTime = time();
$wholeUrl = $this->url . "?sdkappid=" . $this->appid . "&random=" . $random;
$data = new \stdClass();
$data->sig = $this->util->calculateSigForPuller($this->appkey, $random, $curTime);
$data->time = $curTime;
$data->type = $type;
$data->max = $max;
$data->begin_time = $beginTime;
$data->end_time = $endTime;
$data->nationcode = $nationCode;
$data->mobile = $mobile;
return $this->util->sendCurlPost($wholeUrl, $data);
}
/**
* 拉取回执结果
*
* @param string $nationCode 国家码,如 86 为中国
* @param string $mobile 不带国家码的手机号
* @param int $beginTime 开始时间(unix timestamp)
* @param int $endTime 结束时间(unix timestamp)
* @param int $max 拉取最大条数,最多100
* @return string 应答json字符串,详细内容参见腾讯云协议文档
*/
public function pullCallback($nationCode, $mobile, $beginTime, $endTime, $max)
{
return $this->pull(0, $nationCode, $mobile, $beginTime, $endTime, $max);
}
/**
* 拉取回复信息
*
* @param string $nationCode 国家码,如 86 为中国
* @param string $mobile 不带国家码的手机号
* @param int $beginTime 开始时间(unix timestamp)
* @param int $endTime 结束时间(unix timestamp)
* @param int $max 拉取最大条数,最多100
* @return string 应答json字符串,详细内容参见腾讯云协议文档
*/
public function pullReply($nationCode, $mobile, $beginTime, $endTime, $max)
{
return $this->pull(1, $nationCode, $mobile, $beginTime, $endTime, $max);
}
}
Loading…
Cancel
Save