PaysAPI直接查看接口文档:https://www.paysapi.com/docindex,比较简单

百度云视频点播服务接入:

1. 准备工作:百度云的示例:http://cyberplayer.bcelive.com/demo/new/index.html

· 在百度云注册账号并且开通“音视频点播VOD”服务

· 进入后台管理系统 -> 安全认证 -> 获取AccessKey

· 自定义转码模板(因为视频需要使用token加密再播放):

 后端实现:

  ·token加密计算规则:   

  名词解释:
1. userId: 百度云用户唯一标识,可在百度云管理控制台账号基本信息中得到,32位字符串。
2. userKey:用户密钥,是AES-128内容密钥,用于对MediaId和ExpirationTime组成的串进行加密。长度为16字节,用32位十六进制数表示。可在百度云VOD管理控制台中设置和更新。
3. signature: 签名,是用UserKey给MediaId和ExpirationTime加密生成的字符串。长度为32字节,用64位十六进制数表示。
4. mediaId:百度云VOD中媒资的唯一标识。
5. expirationTime:Signature的过期时间,是一个unix时间戳,以秒为单位。
6. token:由Signature_UserId_ExpirationTime组成的字符串。
7. HMAC-SHA-256:签名算法,详见https://tools.ietf.org/html/rfc4868

token的生成方法:
1. 生成签名signature = HMAC-SHA-256(userKey,String.format("/%s/%s", mediaId, expirationTime),sample code见HMAC-SHA-256加密算法 Sample Code
2. 利用下划线(_) 连接signature,userId,expirationTime组合成token = String.format(“%s_%s_%s”, signature, userId,expirationTime)

 加密代码实例:
# hamc,hashlib:加密包
import hmac,hashlib,time
from django.conf import settings
# 获取视频加密token方式
def course_token(request):
file = request.GET.get('video')
  # 自行设置token过期时间
expiration_time = int(time.time()) + 2 * 60 * 60
  # 用户唯一ID
USER_ID = settings.BAIDU_CLOUD_USER_ID
   # 用户秘钥
USER_KEY = settings.BAIDU_CLOUD_USER_KEY
  # 从视频地址中得到 百度云VOD 中媒体资源的唯一标识
media_id = file.split('/')[-2]
  # 加密时,需要将加密的字符串转为16进制
key = USER_KEY.encode('utf-8')
message = '/{0}/{1}'.format(media_id, expiration_time).encode('utf-8')
# hamc.new():创建一个加密的实例
  # digestmod=hashlib.sha256:指定加密类型
  # .hexdigest():得到加密后的对象
signature = hmac.new(key, message, digestmod=hashlib.sha256).hexdigest()
token = '{0}_{1}_{2}'.format(signature, USER_ID, expiration_time)
return restful.result(data={'token': token})
前端实现:

  · 前端准备工作:

    1. 下载百度云视频播放插件:http://sdk.bce.baidu.com/media-sdk/Baidu-T5Player-SDK-Web-v3.4.0.zip

    2. 导入js文件:

 <script src="{% static 'videojs/video.min.js' %}"></script>
<script src="{% static 'videojs/videojs-contrib-hls.min.js' %}"></script>
<script src="{% static 'videojs/videojs-contrib-quality-levels.min.js' %}"></script>
<script type="text/javascript" src="https://cdn.bdstatic.com/jwplayer/latest/cyberplayer.js"></script>

         3. 需要创建一个容器来存放视屏播放器:<div id="playercontainer"></div>

    4. 在js代码中初始化视频播放器:

 var videourl = "视频地址";
var cover = "视频封面图";
var player = cyberplayer("playercontainer").setup({
width: '100%',//设置宽度
height: '100%',//设置播放器高度
file: videourl,//视频播放地址
image: cover,//视频封面图片
   autostart: false,
   //设置播放器缩放方式,缩放方式分为:1.none:不缩放;2.uniform:添加黑边缩放;3. exactfit:改变宽高比缩到最大;4.fill:剪切并缩放到最大(默认方式为uniform)
stretching: "uniform",
   //设置视频的重复播放模式,重复模式分为:1.false:无重复; 2.true:重复播放
repeat: false,
volume: 100,//音量调节,默认为100
   //设置播放器控制条的显示模式,显示模式分为:1.none:不显示;2.over:悬浮(鼠标无操作时自动隐藏)
controls: true,
   //primary: "flash",// 是否使用flash播放
   // 是否开启token加密(重要)
tokenEncrypt: "true",
// AccessKey
ak: 'AccessKey' //用户的AccessKey
});
// 命令 beforePlay :在开始播放前需要做的事情
player.on('beforePlay',function (e) {
  // 判断视频格式是否为m3u8格式
if(!/m3u8/.test(e.file)){
return;
}
xfzajax.get({
// 获取token的url
'url': '/course/course_token/',
'data': {
'video': videourl
},
'success': function (result) {
if(result['code'] === 200){
var token = result['data']['token'];
          // 将token设置到播放器中
player.setToken(e.file,token);
}else{
          // 如果token有误,则将视频停止播放
player.stop();
}
},
'fail': function (error) {
console.log(error);
}
});
});

 有志者,事竟成!

django之集成第三方支付平台PaysAPI与百度云视频点播服务接入的更多相关文章

  1. Android中集成第三方支付

    常见的第三方支付解决方案 支付宝支付 微信支付 银联支付 Ping++统一支付平台(需要继承服务器端和客户端) 短信支付 支付宝的集成流程 相关资料链接: 支付宝支付指引流程:支付指引流程 支付宝An ...

  2. Django中对接第三方支付(支付宝)实现支付的流程

    1. 业务逻辑准备 1. 使用沙箱提供的商家环境 沙箱环境:是支付宝提供给开发者的模拟支付的环境 沙箱应用:https://docs.open.alipay.com/200/105311 沙箱账号:h ...

  3. 第三方支付设计——账户体系

    第三方支付架构设计之-帐户体系 一,      什么是第三方支付?         什么是第三方支付?相信很多人对这个名字很熟悉,不管是从各种媒体等都经常听到,可以说是耳熟能熟.但,如果非得给这个名词 ...

  4. 【网站支付PHP篇】thinkPHP集成支付宝支付(担保交易)

    目录 系列说明 开发环境 部署支付宝 支付请求 支付宝返回处理 系列说明 最近在帮朋友的系统安装支付模块(兑换网站积分),现在总结一些开发心得,希望对大家有用.这个系列会讲以下第三方支付平台的集成: ...

  5. Django对接支付宝Alipay支付接口

    最新博客更新见我的个人主页: https://xzajyjs.cn 我们在使用Django构建网站时常需要对接第三方支付平台的支付接口,这里就以支付宝为例(其他平台大同小异),使用支付宝开放平台的沙箱 ...

  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-1.常用的第三方支付和聚合支付介绍

    笔记 第六章 开发在线教育视频站点核心业务之从零基础接入 微信扫一扫网页支付 1.常用的第三方支付和聚合支付介绍     简介:介绍常用的第三方支付和聚合支付 1.什么是第三方支付         第 ...

  7. iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架

    CocoaPods是一款集合了上千个第三方开源库的开发工具,能够大幅度的提升团队项目的开发效率,降低时间成本. 那么就看一下CocoaPods这个工具在项目中的使用体现吧. 我们马上用ASIHTTPR ...

  8. python -django 之第三方支付

    神魔是第三方支付: 第三方支付是指具有一定实力和信誉保障的第三方独立机构.通过与各大银行签订合同,建立连接用户和银行支付结算系统的平台,从而实现电子支付模式.从另一个角度来看,第三方支付就是非金融机构 ...

  9. Thinkphp各大支付平台在线支付集成源码

    用Thinkphp给客户开发网站的时候需要用到各大平台付款功能,下面就免费分享给大家,此类是个成熟类,网上down下来的,经过修改测试了(可以直接拿来使用,附带使用方法,有需要的朋友请拿走.),如果有 ...

随机推荐

  1. 51Nod 1264:线段相交(计算几何)

    51Nod 1264:线段相交 Decision 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交,输出"Yes",否则输出&q ...

  2. Log4自定义Appender介绍

    最初想要在执行一段业务逻辑的时候调用一个外部接口记录审计信息,一直找不到一个比较优雅的方式,经过讨论觉得log4j自定义的appender或许可以实现此功能.后来就了解了一下log4j的这部分. Ap ...

  3. 手机端h5页面 图片根据手势放大缩小

    pinchzoom.js 这个插件可以简单的实现这一功能 <div class="big_pos_img page"> <div class="pinc ...

  4. 日志分析系统 - k8s部署ElasticSearch集群

    K8s部署ElasticSearch集群 1.前提准备工作 1.1 创建elastic的命名空间 namespace编排文件如下: elastic.namespace.yaml --- apiVers ...

  5. 【】VMware vSphere中三种磁盘规格的解释说明

    在VMware vSphere中,不管是以前的5.1版本,或者是现在的6.5版本,创建虚拟机时,在创建磁盘时,都会让选择磁盘的置备类型,如下图所示,分为: 厚置备延迟置零 厚置备置零 Thin Pro ...

  6. Zookeeper单机安装(开启kerberos)

    安装规划 zookeeper安装到zdh41上面,单机模式 10.43.159.41 zdh41 ZDH.COM 安装用户 zookeeper/zdh1234 useradd -g hadoop -s ...

  7. Linux_接收文件(rz)和发送文件(sz)

    我们连接linux通常是使用一些ssh工具进行远程访问连接的,在使用过程中,少不了将本地文件上传到linux或将linux上的文件下载到本地,每次使用ftp比较繁琐而且浪费时间.我们可以使用linux ...

  8. python pathlib模块(面向对象的文件系统路径)

    该模块提供表示文件系统路径的类,其语义适用于不同的操作系统 导入Path类: 获取当前目录的绝对路径: 返回当前目录的路径对象 路径拼接 os与PurePath/Path函数映射表 来自为知笔记(Wi ...

  9. Zabbix忘记用户名和密码的解决方法

    问题描述: 最近刚搭建了zabbix服务器,然后新增加了一个用户,并且把默认的Admin禁用了.然后这个监控页面一直没关,保持了10多天,今天不小心把浏览器关闭了,重新打开后,突然忘记了用户名,这下麻 ...

  10. spring security 动态 修改当前登录用户的 权限

    1.前言 spring security 可以获取当前登录的用户信息,同时提供了接口 来修改权限列表信息 , 使用这个方法 ,可以动态的修改当前登录用户权限. 那么问题来了... 如果我是管理员 ,如 ...