扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > VE 云渲染平台 > 任务回调数据

任务回调数据

更新时间 : 2022-05-09 16:34:10

说明

在通过提交时长计费渲染任务时,渲染完成或失败后,平台都会回调预留的notifyUrl字段的地址,把渲染完成后的信息返回。
回调接口中返回http状态码为200时,平台会认为回调成功。
其它情况下平台会认为回调失败,该回调如失败会重试5次,分别在10秒后、40秒后、70秒后、100秒后、160秒后重试。
您也可以通过获取渲染任务状态接口获得渲染结果。

回调通知

成功通知:

{
    "record_id": "9273e0a7da1fd07a76212ee1c1414a23",
    "video": "user_video/d86c1b0a971786d727d506e946abe0e4.mp4",
    "snapshots": ["user_snapshots/0a1b4534efe785ca54b82fa28a683329.png"],
    "cost_time": 13935,
    "duration": 14,
    "status_code": 0,
    "error_msg": ""
}
字段 数据类型 释义
record_id string 商户订单号
video string 渲染完成结果视频地址
snapshots string[] 视频快照截图地址数组
cost_time int 渲染消耗时间(毫秒)
status_code int 错误码,0为渲染成功
duration float 视频时长 (秒)
error_msg string 错误信息

status code 详见错误码列表

https://www.seeshiontech.com/docs/page_76.html

校验header

为保证只有VE平台有权限回调您的预留接口,VE平台将使用提交任务时的access_key和access_secret和record_id加密获取token,token在header中回调。可通过token判断是否合法的回调方

token md5(recordId + accessKey + accessSecret)

校验方法

我们提供两个简单的校验demo供您参考,校验后的具体逻辑需要您自行设计。

<?php
$record_id = "<MyRecordId>";
$access_key = "<MyAccessKey>";
$access_secret = "<MyAccessSecret>";
if ($_SERVER["HTTP_TOKEN"] == md5($record_id . $access_key . $access_secret)) {
    //校验token通过
}
package main

import (
    "crypto/md5"
    "encoding/hex"
    "log"
    "net/http"
)

func resp(w http.ResponseWriter, req *http.Request) {
    var reqToken,recordId,accessKey,accessSecret string
    reqToken = req.Header["Token"][0]
    recordId = "<MyRecordId>"
    accessKey = "<MyAccessKey>"
    accessSecret = "<MyAccessSecret>"
    encodeString := recordId + accessKey + accessSecret

    h := md5.New()
    h.Write([]byte(encodeString))
    s := hex.EncodeToString(h.Sum(nil))
    if reqToken == s {
        //token校验通过
    }

}

func main() {
    http.HandleFunc("/", resp)
    err := http.ListenAndServe(":80", nil)

    if err != nil {
        log.Fatal("ListenAndServe: ", err.Error())
    }
}
首页 > VE 云渲染平台 > 任务回调数据
任务回调数据
更新时间 : 2022-05-09 16:34:10
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

说明

在通过提交时长计费渲染任务时,渲染完成或失败后,平台都会回调预留的notifyUrl字段的地址,把渲染完成后的信息返回。
回调接口中返回http状态码为200时,平台会认为回调成功。
其它情况下平台会认为回调失败,该回调如失败会重试5次,分别在10秒后、40秒后、70秒后、100秒后、160秒后重试。
您也可以通过获取渲染任务状态接口获得渲染结果。

回调通知

成功通知:

{
    "record_id": "9273e0a7da1fd07a76212ee1c1414a23",
    "video": "user_video/d86c1b0a971786d727d506e946abe0e4.mp4",
    "snapshots": ["user_snapshots/0a1b4534efe785ca54b82fa28a683329.png"],
    "cost_time": 13935,
    "duration": 14,
    "status_code": 0,
    "error_msg": ""
}
字段 数据类型 释义
record_id string 商户订单号
video string 渲染完成结果视频地址
snapshots string[] 视频快照截图地址数组
cost_time int 渲染消耗时间(毫秒)
status_code int 错误码,0为渲染成功
duration float 视频时长 (秒)
error_msg string 错误信息

status code 详见错误码列表

https://www.seeshiontech.com/docs/page_76.html

校验header

为保证只有VE平台有权限回调您的预留接口,VE平台将使用提交任务时的access_key和access_secret和record_id加密获取token,token在header中回调。可通过token判断是否合法的回调方

token md5(recordId + accessKey + accessSecret)

校验方法

我们提供两个简单的校验demo供您参考,校验后的具体逻辑需要您自行设计。

  • php
<?php
$record_id = "<MyRecordId>";
$access_key = "<MyAccessKey>";
$access_secret = "<MyAccessSecret>";
if ($_SERVER["HTTP_TOKEN"] == md5($record_id . $access_key . $access_secret)) {
    //校验token通过
}
  • go
package main

import (
    "crypto/md5"
    "encoding/hex"
    "log"
    "net/http"
)

func resp(w http.ResponseWriter, req *http.Request) {
    var reqToken,recordId,accessKey,accessSecret string
    reqToken = req.Header["Token"][0]
    recordId = "<MyRecordId>"
    accessKey = "<MyAccessKey>"
    accessSecret = "<MyAccessSecret>"
    encodeString := recordId + accessKey + accessSecret

    h := md5.New()
    h.Write([]byte(encodeString))
    s := hex.EncodeToString(h.Sum(nil))
    if reqToken == s {
        //token校验通过
    }

}

func main() {
    http.HandleFunc("/", resp)
    err := http.ListenAndServe(":80", nil)

    if err != nil {
        log.Fatal("ListenAndServe: ", err.Error())
    }
}