服务端 API
  • 后台接入说明
  • 后台回调说明
  • 后台混流接口
  • 服务端录制接口
  • 后台房间信令接口
  • 音频审核接口
  • 媒体服务接口
  • 文档中心
  • 服务端 API
  • 后台回调说明
  • 检验说明

检验说明

更新时间:2022-03-16 15:56

1 加密/校验

注意: 对于 CDN 禁止直播接口和 CDN 恢复直播接口,signature 对应的计算方式是 serversecret、timestamp、nonce 去进行 sha1 计算。

  • callbacksecret 是在 ZEGO 控制台 注册项目时生成的,可在 “控制台 > 项目配置 > 项目信息 > 配置信息” 中查看,用于后台回调的校验。
  • serversecret 是在 ZEGO 控制台 注册项目时生成的,可在 “控制台 > 项目配置 > 项目信息 > 配置信息” 中查看,用于后台请求的校验。

加密/校验的使用流程如下图:

2 示例代码(检验signature)

PHP 代码如下:

$signature = $_POST["signature"];
$timestamp = $_POST["timestamp"];
$nonce = $_POST["nonce"];

$secret = callbacksecret;//后台获取的callbacksecret
$tmpArr = array($secret, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
    return true;
} else {
    return false;
}

Java 代码如下:

// 从请求参数中获取到 signature, timestamp, nonce
String signature = request.getParameter("signature");
long timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");

// 后台获取的callbacksecret
String secret = callbacksecret;

String[] tempArr = {secret, ""+timestamp, nonce};
Arrays.sort(tempArr);

String tmpStr = "";
for (int i = 0; i < tempArr.length; i++) {
    tmpStr += tempArr[i];
}
tmpStr = org.apache.commons.codec.digest.DigestUtils.sha1Hex(tmpStr);

return tmpStr.equals(signature);

3 输出示例

$timestamp = 1470820198;
$nonce = 123412;
$secret = 'secret';

排序拼接后需要加密的原始串为:1234121470820198secret
加密的结果为:5bd59fd62953a8059fb7eaba95720f66d19e4517
本篇目录