任务事件腾讯云控制台版本
<p>[toc]</p>
<h2>使用流程</h2>
<p>1、任务事件管理
在控制台中创建、编辑、删除任务事件。
2、任务事件绑定
在创建任务的时候,绑定好任务事件;一个任务事件可以绑定多个任务,一个任务只能绑定一个事件。每个任务增加了计次项,即调用提交接口n次时,才能获取到积分。
3、任务事件提交
通过submitTaskEvent接口提交任务事件,该接口会筛选出已上线(不包括删除、下线、过期)的任务,并判断其是否可以进行提交,当任务事件下的所有任务都具备提交条件的时候,会同时对这些任务进行提交。</p>
<h2>接口描述</h2>
<h3>异步执行和同步执行</h3>
<h4>同步执行</h4>
<p>请求后,如果是同步执行,系统执行完提交任务的操作后,返回相应的结果。</p>
<h4>异步执行</h4>
<p>请求后,如果是异步执行且参数正确无误,会立即返回任务请求成功,但是不会返回执行任务的结果。由<strong>异步执行结果通知地址</strong>通知提交任务结果,如果通知地址无效,将会导致任务通知失败。</p>
<h4>如何选择</h4>
<ul>
<li>事务性比较强,选同步</li>
<li>对并发要求高,选异步</li>
</ul>
<h3>接口文档设计</h3>
<h4>接口请求</h4>
<p>请直接使用腾讯云的接口文档进行对接:
<a href="https://cloud.tencent.com/document/api/1310/89032">https://cloud.tencent.com/document/api/1310/89032</a></p>
<h4>返回参数</h4>
<p>成功示例 - 同步</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Code</td>
<td>int</td>
<td>是</td>
<td>提交任务事件接口状态码。0为提交成功,非0值为异常</td>
</tr>
<tr>
<td>Message</td>
<td>string</td>
<td>是</td>
<td>任务事件结果提示信息</td>
</tr>
<tr>
<td>OrderId</td>
<td>string</td>
<td>是</td>
<td>提交任务时的OrderId的参数(用户传入的唯一ID)</td>
</tr>
<tr>
<td>Data</td>
<td>array</td>
<td>是</td>
<td>提交后返回的数据</td>
</tr>
</tbody>
</table>
<p>data数据:</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Code</td>
<td>int</td>
<td>是</td>
<td>任务状态。0为提交成功,非0值为异常</td>
</tr>
<tr>
<td>Message</td>
<td>string</td>
<td>是</td>
<td>任务结果提示信息</td>
</tr>
<tr>
<td>TaskOrderId</td>
<td>string</td>
<td>是</td>
<td>完成或正在完成的任务订单ID,和请求时的订单ID不一样 。异步执行不返回。</td>
</tr>
<tr>
<td>Attach</td>
<td>string</td>
<td>否</td>
<td>额外代码块,一些透传的信息</td>
</tr>
<tr>
<td>DoneTimes</td>
<td>int</td>
<td>否</td>
<td>计次任务:当前已完成次数。</td>
</tr>
<tr>
<td>TotalTimes</td>
<td>int</td>
<td>否</td>
<td>计次任务:单个任务完成需要次数。</td>
</tr>
<tr>
<td>TaskCode</td>
<td>int</td>
<td>否</td>
<td>任务订单提交的状态码,此值等于0,任务完成,否则未完成。异步执行不返回。</td>
</tr>
<tr>
<td>TaskCoinNumber</td>
<td>int</td>
<td>否</td>
<td>完成任务获得积分。异步执行不返回。</td>
</tr>
<tr>
<td>TaskId</td>
<td>int</td>
<td>否</td>
<td>完成任务的ID。异步执行不返回。</td>
</tr>
<tr>
<td>TaskType</td>
<td>int</td>
<td>否</td>
<td>完成任务的类型。异步执行不返回。</td>
</tr>
<tr>
<td>TotalCoin</td>
<td>int</td>
<td>否</td>
<td>积分总数。异步执行不返回。</td>
</tr>
<tr>
<td>TaskName</td>
<td>string</td>
<td>否</td>
<td>任务名称。异步执行不返回。</td>
</tr>
</tbody>
</table>
<h4>返回示例</h4>
<pre><code>{
&quot;Response&quot;: {
&quot;Code&quot;: 0,
&quot;Data&quot;: [
{
&quot;Attach&quot;: &quot;attach&quot;,
&quot;Code&quot;: 0,
&quot;DoneTimes&quot;: null,
&quot;Message&quot;: &quot;任务已完成或无可做任务&quot;,
&quot;TaskCode&quot;: null,
&quot;TaskCoinNumber&quot;: null,
&quot;TaskId&quot;: 41421,
&quot;TaskName&quot;: &quot;积分任务事件1&quot;,
&quot;TaskOrderId&quot;: null,
&quot;TaskType&quot;: null,
&quot;TotalCoin&quot;: null,
&quot;TotalTimes&quot;: null
},
{
&quot;Attach&quot;: &quot;123&quot;,
&quot;Code&quot;: 0,
&quot;DoneTimes&quot;: null,
&quot;Message&quot;: &quot;任务完成&quot;,
&quot;TaskCode&quot;: 0,
&quot;TaskCoinNumber&quot;: 1,
&quot;TaskId&quot;: 41423,
&quot;TaskName&quot;: &quot;123&quot;,
&quot;TaskOrderId&quot;: &quot;3778318528843622287&quot;,
&quot;TaskType&quot;: 11400226,
&quot;TotalCoin&quot;: 1,
&quot;TotalTimes&quot;: null
},
{
&quot;Attach&quot;: &quot;123&quot;,
&quot;Code&quot;: 0,
&quot;DoneTimes&quot;: 1,
&quot;Message&quot;: &quot;该任务完成次数 1 / 2&quot;,
&quot;TaskCode&quot;: null,
&quot;TaskCoinNumber&quot;: null,
&quot;TaskId&quot;: 41424,
&quot;TaskName&quot;: &quot;123&quot;,
&quot;TaskOrderId&quot;: &quot;3778318528844408719&quot;,
&quot;TaskType&quot;: null,
&quot;TotalCoin&quot;: null,
&quot;TotalTimes&quot;: 2
}
],
&quot;Message&quot;: &quot;success&quot;,
&quot;OrderId&quot;: &quot;14&quot;,
&quot;RequestId&quot;: &quot;d78762cb-3924-4f68-8141-e84abd3f1972&quot;
}
}</code></pre>
<p>异步</p>
<pre><code>{
&quot;Response&quot;: {
&quot;Code&quot;: 0,
&quot;Data&quot;: null,
&quot;Message&quot;: &quot;success&quot;,
&quot;OrderId&quot;: &quot;19&quot;,
&quot;RequestId&quot;: &quot;30cf98ba-b8ef-440a-8d65-7b888c5bc304&quot;
}
}</code></pre>
<p>失败示例1(参数不符)</p>
<pre><code>{
&quot;Response&quot;: {
&quot;Code&quot;: -1,
&quot;Data&quot;: null,
&quot;Message&quot;: &quot;\&quot;Async\&quot; must be one of [0, 1]&quot;,
&quot;OrderId&quot;: &quot;21&quot;,
&quot;RequestId&quot;: &quot;b16b91fe-68da-4e79-8974-7a2e67b526e5&quot;
}
}</code></pre>
<p>失败示例2(事件中存在获取失败的任务)</p>
<pre><code>{
&quot;Response&quot;: {
&quot;Code&quot;: -1,
&quot;Data&quot;: [
{
&quot;Attach&quot;: &quot;attach&quot;,
&quot;Code&quot;: -1,
&quot;DoneTimes&quot;: null,
&quot;Message&quot;: &quot;内部错误&quot;,
&quot;TaskCode&quot;: null,
&quot;TaskCoinNumber&quot;: null,
&quot;TaskId&quot;: 41421,
&quot;TaskName&quot;: &quot;积分任务事件1&quot;,
&quot;TaskOrderId&quot;: null,
&quot;TaskType&quot;: null,
&quot;TotalCoin&quot;: null,
&quot;TotalTimes&quot;: null
},
{
&quot;Attach&quot;: &quot;attach&quot;,
&quot;Code&quot;: -1,
&quot;DoneTimes&quot;: null,
&quot;Message&quot;: &quot;该任务未上线或不存在&quot;,
&quot;TaskCode&quot;: null,
&quot;TaskCoinNumber&quot;: null,
&quot;TaskId&quot;: 41422,
&quot;TaskName&quot;: &quot;积分任务事件2&quot;,
&quot;TaskOrderId&quot;: null,
&quot;TaskType&quot;: null,
&quot;TotalCoin&quot;: null,
&quot;TotalTimes&quot;: null
},
],
&quot;Message&quot;: &quot;存在获取失败任务&quot;,
&quot;OrderId&quot;: &quot;15&quot;,
&quot;RequestId&quot;: &quot;d78762cb-3924-4f68-8141-e84abd3f1972&quot;
}
}</code></pre>
<h4>注意事项</h4>
<p>对于同一产品、同一任务事件、同一账号的任务事件提交操作会进行加锁,以防止同时进行多次任务事件提交操作。</p>
<h3>异步通知接口文档</h3>
<h4>接口名</h4>
<p>通知URL必须为直接可访问的URL,不允许携带查询串,要求必须为https地址。</p>
<h4>请求方式</h4>
<p>POST</p>
<h4>签名方式</h4>
<p><a href="https://www.showdoc.com.cn/1procedure2develop/4613304376289731">https://www.showdoc.com.cn/1procedure2develop/4613304376289731</a></p>
<h4>请求参数</h4>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Code</td>
<td>int</td>
<td>是</td>
<td>提交任务事件接口状态码。0为提交成功,非0值为异常</td>
</tr>
<tr>
<td>Message</td>
<td>string</td>
<td>是</td>
<td>任务事件结果提示信息</td>
</tr>
<tr>
<td>OrderId</td>
<td>string</td>
<td>是</td>
<td>提交任务时的OrderId的参数</td>
</tr>
<tr>
<td>Data</td>
<td>array</td>
<td>是</td>
<td>提交后返回的数据</td>
</tr>
</tbody>
</table>
<p>data数据:</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>Code</td>
<td>int</td>
<td>是</td>
<td>任务状态。0为提交成功,非0值为异常</td>
</tr>
<tr>
<td>Message</td>
<td>string</td>
<td>是</td>
<td>任务结果提示信息</td>
</tr>
<tr>
<td>TaskOrderId</td>
<td>string</td>
<td>是</td>
<td>完成或正在完成的任务订单ID,和请求时的订单ID不一样 。异步执行不返回。</td>
</tr>
<tr>
<td>Attach</td>
<td>string</td>
<td>否</td>
<td>额外代码块,一些透传的信息</td>
</tr>
<tr>
<td>DoneTimes</td>
<td>int</td>
<td>否</td>
<td>计次任务:当前已完成次数。</td>
</tr>
<tr>
<td>TotalTimes</td>
<td>int</td>
<td>否</td>
<td>计次任务:单个任务完成需要次数。</td>
</tr>
<tr>
<td>TaskCode</td>
<td>int</td>
<td>否</td>
<td>任务订单提交的状态码,此值等于0,任务完成,否则未完成。异步执行不返回。</td>
</tr>
<tr>
<td>TaskCoinNumber</td>
<td>int</td>
<td>否</td>
<td>完成任务获得积分。异步执行不返回。</td>
</tr>
<tr>
<td>TaskId</td>
<td>int</td>
<td>否</td>
<td>完成任务的ID。异步执行不返回。</td>
</tr>
<tr>
<td>TaskType</td>
<td>int</td>
<td>否</td>
<td>完成任务的类型。异步执行不返回。</td>
</tr>
<tr>
<td>TotalCoin</td>
<td>int</td>
<td>否</td>
<td>积分总数。异步执行不返回。</td>
</tr>
</tbody>
</table>
<h4>请求示例</h4>
<pre><code>{
&quot;Code&quot;: 0,
&quot;OrderId&quot;: &quot;21&quot;,
&quot;Message&quot;: &quot;success&quot;,
&quot;Data&quot;: [
{
&quot;Code&quot;: 0,
&quot;Message&quot;: &quot;任务已完成或无可做任务&quot;,
&quot;TaskName&quot;: &quot;积分任务事件1&quot;,
&quot;TaskId&quot;: 41421,
&quot;Attach&quot;: &quot;attach&quot;
},
{
&quot;Code&quot;: 0,
&quot;Message&quot;: &quot;该任务完成次数 1 / 2&quot;,
&quot;DoneTimes&quot;: 1,
&quot;TotalTimes&quot;: 2,
&quot;TaskId&quot;: 41423,
&quot;TaskName&quot;: &quot;123&quot;,
&quot;TaskOrderId&quot;: &quot;3778318528844408719&quot;,
&quot;Attach&quot;: &quot;123&quot;
}
]
}</code></pre>
<pre><code>{
&quot;Code&quot;: -1,
&quot;Data&quot;: null,
&quot;Message&quot;: &quot;\&quot;Async\&quot; must be one of [0, 1]&quot;,
&quot;OrderId&quot;: &quot;22&quot;,
}</code></pre>
<pre><code>{
&quot;Code&quot;: -1,
&quot;OrderId&quot;: &quot;23&quot;,
&quot;Message&quot;: &quot;存在提交失败任务&quot;,
&quot;Data&quot;: [
{
&quot;Attach&quot;: &quot;attach&quot;,
&quot;Code&quot;: -1,
&quot;Message&quot;: &quot;内部错误&quot;,
&quot;TaskId&quot;: 41421,
&quot;TaskName&quot;: &quot;积分任务事件1&quot;,
},
{
&quot;Attach&quot;: &quot;attach&quot;,
&quot;Code&quot;: -1,
&quot;Message&quot;: &quot;该任务未上线或不存在&quot;,
&quot;TaskId&quot;: 41422,
&quot;TaskName&quot;: &quot;积分任务事件2&quot;,
},
]
}</code></pre>
<h4>返回示例</h4>
<p>成功接受通知后请返回字符串success</p>
<pre><code>'success'</code></pre>