# 播放器的授权播放

### 使用场景

学员登录网站页面后进入视频直播播放页面，播放器通过携带学员信息请求授权验证URL，接口判断该学员是否能播放当前视频。若不允许播放，则播放器提示相关错误信息，不能播放。用于学员播放权限验证。

###

### 后台设置

**设置方式一：单个频道设置授权认证URL** 频道设置 --> 播放器管理 --> 播放限制 --> 授权验证URL ![](https://6941759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmV4PIbrO79lRJl9HCeLg%2Fuploads%2Fgit-blob-5d94a4952592a40d5f9f0af44755d26bb51b6f64%2Furl-settings.png?alt=media)

###

**设置方式二：通用设置授权认证URL，账号下所有频道开启应用默认设置生效** 通用设置 --> 播放限制 --> 授权验证URL ![](https://6941759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmV4PIbrO79lRJl9HCeLg%2Fuploads%2Fgit-blob-d6d9593a6a25c8373cb25119ec75f98345360567%2Furl-common-settings.png?alt=media)

###

### 参数说明

**播放器请求授权认证URL参数说明：**

| 参数名称     | 参数说明                         |
| -------- | ---------------------------- |
| vid      | 频道ID                         |
| code     | flashvars中自定义参数，默认空          |
| t        | 时间戳                          |
| v        | 随机数去缓存，移动端中请求接口该字段为\_        |
| callback | callback回调，移动端中请求接口使用jsonp方式 |

```javascript
var player = polyvObject(".player").livePlayer({
    width: '100%',
    height: '100%',
    uid: 'e3wx706i3v',
    vid: '101043',
	flashvars: {
	  code: 'polyv'
	}
});
```

请求接口示例： `http://www.mywebsite.com/pmd.php?vid=101043&code=polyv&t=1555569549636&v=867`

**授权认证URL接口回调参数说明**

| 参数名称     | 取值范围   | 参数说明                  |
| -------- | ------ | --------------------- |
| status   | Number | 是否允许播放, 1 正常播放 2 禁止播放 |
| username | String | 跑马灯展示内容，可为""          |
| sign     | String | 授权验证sign              |
| show     | String | 是否显示跑马灯 on 显示 off 隐藏  |
| message  | String | 自定义错误信息，非必填           |

sign值MD5计算规则： 将vid(vid为频道ID),username,code,status,s(s为上文show的简写)，t(t为播放器请求授权URL的时间戳参数)做MD5

```javascript
let sign = MD5(`vid=${vid}&username=${username}&code=${code}&status=${status}&s=${show}&t=${t}`);
```

#### PHP示例代码

```php
<?php
$status = 1;
$username = "test";
$show= "on";
$vid = $_GET["vid"];
$code = $_GET["code"];
$time = $_GET["t"];
 
//客户网站后台对学员身份做判断，若授权不通过不允许播放器去播视频，可以自定义提示信息，将提示信息传给POLYV播放器，让播放器显示出来
$message="该学员不是付费会员，请购买套餐后再刷新页面播放"; 
 
$md5=md5("vid=".$vid."&username=".$username."&code=".$code."&status=".$status."&s=".$show."&t=".$time);
$callback = isset($_GET["callback"])?$_GET["callback"]:null; //未提交callback时则设为空
 
$array = Array("status"=>$status,"username"=>$username,"show"=>$show,"sign"=>$md5,"message"=>$message);
$validateJson = json_encode($array);
 
if($callback != null){
    echo $callback."(".$validateJson.")"; 
} else{
    echo $validateJson;
}
?>
```

※注：为了更方便的使用跑马灯功能，现已将直播跑马灯功能单独移出，具体请点击 [视频跑马灯–新的防录屏神器](https://git.polyv.net/help-center/document-center/-/blob/master/live/api/player/marquee_instruction/README.md)进行设置，目前授权认证接口仍需要提交相关操作，为空的参数也要提交。

###

### 注意事项

1. 保存Json地址的域名下必需增加crossdomain.xml文件

**crossdomain.xml:**

```
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
```

###

### 示例

示例地址：<http://demo.polyv.net/chenwb/test30/login.php>

示例代码下载：[zbsqrz](https://git.polyv.net/help-center/document-center/-/blob/master/third_res/zbsqrz.zip)
