保利威文档中心

幫助中心

打賞功能

更新時間: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 支付 QR Code 地址,付費禮物才存在 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 類型

联系客服,在线咨询