保利威文档中心

帮助中心

打赏功能

更新时间:2025-11-19 16:08:38

一、获取频道打赏配置

从 v1.2.0 开始可以通过 PlvDonateModule.generateDefaultDonateConfig() 来获取默认配置

Api 方法: getDonateConfig(): DonateConfig

返回值说明: 频道打赏配置,DonateConfig 类型,详细类型说明如下

属性名 说明 类型
donateCashMin 现金打赏最低限制 number
donateCashQuickOptions 现金打赏金额列表 number[]
donateCashEnabled 现金打赏开关 boolean
donateGoodEnabled 道具(现金)打赏开关 boolean
donatePointEnabled 道具(积分)打赏开关 boolean
donatePointUnit 积分礼物单位 string
donateScoreUnit 积分单位 string

示例:

const donateConfig = watchCore.donate.getDonateConfig();
console.log('现金打赏开关', donateConfig.donateCashEnabled);
console.log('现金礼物打赏开关', donateConfig.donateGoodEnabled);
console.log('积分礼物打赏开关', donateConfig.donatePointEnabled);

二、判断是否显示现金打赏

Api 方法: isShowDonateCash(): boolean

返回值说明: 是否显示现金打赏

示例:

const check = watchCore.donate.isShowDonateCash();
if (check) {
  // TODO:显示现金打赏
} else {
  // TODO:隐藏现金打赏
}

三、判断是否显示现金道具打赏

Api 方法: isShowDonateCashGood(): boolean

返回值说明: 是否显示现金道具打赏

示例:

const check = watchCore.donate.isShowDonateCashGood();
if (check) {
  // TODO:显示现金道具打赏
} else {
  // TODO:隐藏现金道具打赏
}

四、是否显示积分道具打赏

Api 方法: isShowDonatePointGood(): boolean

返回值说明: 是否显示积分道具打赏

示例:

const check = watchCore.donate.isShowDonatePointGood();
if (check) {
  // TODO:显示积分道具打赏
} else {
  // TODO:隐藏积分道具打赏
}

五、判断是否为免费礼物

通过打赏道具名称以及管理后台配置的打赏设置判断礼物是否免费,如果不在配置中的礼物将返回 false。

Api 方法: isFreeReward(rewardContent: string): boolean

参数说明:

  • rewardContent:打赏内容(道具名称),string 类型,必传

示例:

const check = watchCore.donate.isFreeReward('鲜花');
if (check) {
  console.log('礼物是免费的');
} else {
  console.log('礼物是收费的');
}

六、获取打赏道具信息

获取管理后台中设置的打赏道具信息,如积分打赏道具、现金打赏道具

Api 方法: getDonateGoods(): Object

返回值说明: Object 类型,详细类型说明如下

属性名 说明 类型
goods 当前支持打赏的道具 DonateGoodData[]
cashGoods 现金道具 DonateGoodData[]
pointGoods 积分道具 DonateGoodData[]

示例:

const info = watchCore.donate.getDonateGoods();
console.log('当前支持显示的打赏道具', info.goods);
console.log('后台设置的现金道具', info.cashGoods);
console.log('后台设置的积分道具', info.pointGoods);

七、支付打赏

当观众进行打赏时,可调用 payDonate 进行打赏,调用后可通过支付记录 id logId 查询支付状态。

Api 方法: payDonate(params: PayDonateParams): Promise<PayDonateData>

参数说明:

  • params:打赏内容,PayDonateParams 类型,必传,详细类型说明如下
参数名 说明 类型 必须 默认值
donateType 打赏类型 DonateType -
goodId 道具打赏道具 id string -
goodCount 打赏数量 number -
amount 现金打赏时的打赏金额,单位:元 string | number -

返回值说明: 打赏支付数据,Promise<PayDonateData> 类型,详细类型说明如下

属性名 说明 类型
donateType 打赏类型 DonateType
isFree 是否为免费礼物 boolean
logId 支付记录 id string
goodId 打赏道具 id string
goodCount 打赏数量 number
amount 现金打赏时的打赏金额 string | number
codeUrl 支付地址 string
qrCodeUrl 支付二维码地址,付费礼物才存在 string
wxPaySignData 微信支付签名数据 WxPaySignData

示例:

import { DonateType } from '@polyv/live-watch-sdk';

// 现金打赏
const payData = await watchCore.donate.payDonate({
  donateType: DonateType.Cash,
  amount: '1.2', // 1.2 元
});

// 道具打赏
const payData = await watchCore.donate.payDonate({
  donateType: DonateType.Good,
  goodId: 'xxx',
  goodCount: 2,
});

// 调用后的处理
if (payData.isFree) {
  // 免费道具,无需支付
  return;
}

if (isPC) {
  // PC 端使用扫码支付
  toast.success('显示支付二维码', payData.qrCodeUrl);
  return;
}

if (isMobile && isWeixin) {
  // 移动端微信环境下调用微信 JSSDK 支付接口
  const wxPaySignData = payData.wxPaySignData;
  wx.chooseWXPay({
    timestamp: wxPaySignData.timestamp,
    nonceStr: wxPaySignData.nonceStr,
    package: wxPaySignData.package,
    signType: wxPaySignData.signType,
    paySign: wxPaySignData.paySign,
    success: () => {
      toast.success('支付成功');
    },
    fail: () => {
      toast.success('支付失败');
    },
  });
  return;
}

toast.error('请使用微信客户端打开');

八、检查打赏支付状态

Api 方法: checkDonatePayStatus(params: CheckDonatePayStatusParams): Promise<DonatePayStatusData>

参数说明:

  • params:CheckDonatePayStatusParams 类型,必传,详细类型说明如下
参数名 说明 类型 必须 默认值
logId 记录id string -
donateType 打赏类型 DonateType -

返回值说明: 打赏支付状态数据,Promise<DonatePayStatusData> 类型,详细类型说明如下

属性名 说明 类型
paySuccess 是否支付成功 boolean

九、获取当前用户打赏的剩余积分

Api 方法: getDonateSurplusPoint(): Promise<number>

返回值说明: Promise<number> 类型

十、支付积分打赏

Api 方法: payDonatePoint(params: PayDonatePointParams): Promise<number>

参数说明:

  • params:PayDonatePointParams 类型,必传,详细类型说明如下
参数名 说明 类型 必须 默认值
goodId 道具打赏道具 id string -
goodCount 打赏数量 number -

返回值说明: 返回剩余积分,Promise<number> 类型

十一、获取打赏 svga 链接

Api 方法: getDonateSvgaUrl(gimg: string): undefined | string

从 v1.0.0 版本开始支持

参数说明:

  • gimg:打赏图片地址,string 类型,必传

返回值说明: undefined | string 类型

联系客服,在线咨询