积分打赏接口开发指引

功能介绍

POLYV支持与用户的积分系统对接,实现积分打赏。参照本文档提供的积分查询接口和积分更新接口,配置在POLYV后台的通用设置,使用系统生成的观看链接,配合外部授权、自定义授权或者白名单观看条件使用,观众在看直播时也可消耗积分并打赏给主播。

获取观众积分接口

说明

通过传递观众的id 和频道号等参数,对用户的积分查询接口URL 进行请求,获取学员在平台的积分

请求方式

GET

请求参数

参数 说明
channelId 频道号
viewerId 观众ID
ts 当前13位毫秒级时间戳
appId 账号在polyv后台的应用ID
sign 用于校验的sign,生成方法参考文档底部

接口返回要求

请求成功:
{
    "code":200,
    "status":"success",
    "message":"",
    "data":100.00
}
请求失败:
{
    "code":400,
    "status":"error",
    "message":"相关错误信息",
    "data":null
}
参数说明
参数 类型 说明
code int 接口请求状态码,200表示成功,非200表示失败
status string 接口请求状态,success 表示成功
message string 接口错误提示,注意:请求出错时,页面显示的提示为polyv积分打赏所设置的提示
data float 请求成功时为观众的积分

观众打赏道具接口(修改观众积分)

说明

观众观看页选择了相应道具进行打赏时,请求积分更新接口URL修改在平台的积分

请求方式

POST

请求参数

参数 说明
channelId 频道号
viewerId 观众ID
ts 当前13位毫秒级时间戳
appId 账号在polyv后台的应用ID
goodName 打赏的道具名称
goodPrice 账号在polyv后台的应用ID
sign 用于校验的sign,生成方法参考文档底部

接口返回要求

请求成功:
{
    "code":200,
    "status":"success",
    "message":"",
    "data":100.00
}
请求失败:
{
    "code":400,
    "status":"error",
    "message":"相关错误信息",
    "data":null
}
参数说明
参数 类型 说明
code int 接口请求状态码,200表示成功,非200表示失败
status string 接口请求状态,success 表示成功
message string 接口错误提示,注意:请求出错时,页面显示的提示为polyv积分打赏所设置的提示
data float 请求成功时为观众的剩余积分

sign的生成方法

为了保证接口的安全性,polyv观看页在请求接口时,会增加一个经过拼接生成的sign值,建议您在相应的代码里面增加对sign的校验,以确定接口的正常使用。

生成步骤

  1. 将要提交的所有非空参数和参数值根据参数名的进行字典序排列;
  2. 然后以: 参数名参数值参数名参数值进行拼接,拼接完后首尾带上appSecret
  3. 最后用MD5将字符串进行加密,加密后再大写

例如:
要发送的参数为:

channelId=10000, appId=app_trail, viewerId=viewer_test, ts=1558659759696;

按参数名字典序排序:

appId=app_trail, channelId=10000, ts=1558659759696, viewerId=viewer_test

拼接字符串并且首尾带上appSecret(从polyv后台获取,此处例如 6ef8d34c08f44e91a18428842ff0ba7e):

6ef8d34c08f44e91a18428842ff0ba7eappIdapp_trailchannelId10000ts1558659759696viewerviewer_testId6ef8d34c08f44e91a18428842ff0ba7e

通过MD5加密后再大写 得到最终的sign:

F42D596520782405C37021B853F0F805

参考示例:

    /**
     * 计算请求用户接口的sign
     */
    private String getSign(Map<String, String> paramMap, String appSecret) {
        //对参数名进行字典排序
        String[] keyArray = paramMap.keySet().toArray(new String[0]);
        Arrays.sort(keyArray);
        //拼接有序的参数串,首尾加上appSecret
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(appSecret);
        for (String key : keyArray) {
            stringBuilder.append(key).append(paramMap.get(key));
        }
        stringBuilder.append(appSecret);
        // 最后用md5加密后再大写
        return EncryptionUtils.md5Hex(stringBuilder.toString()).toUpperCase();
    }
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...