更新时间 : 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
为保证只有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())
}
}
在通过提交时长计费渲染任务时,渲染完成或失败后,平台都会回调预留的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
为保证只有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())
}
}