打赏功能

一、获取频道打赏配置

从 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:undefined,CheckDonatePayStatusParams 类型,必传,详细类型说明如下

参数名说明类型必须默认值

logId

记录id

string

-

donateType

打赏类型

DonateType

-

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

属性名说明类型

paySuccess

是否支付成功

boolean

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

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

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

十、支付积分打赏

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

参数说明:

  • params:undefined,PayDonatePointParams 类型,必传,详细类型说明如下

参数名说明类型必须默认值

goodId

道具打赏道具 id

string

-

goodCount

打赏数量

number

-

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

十一、获取打赏 svga 链接

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

参数说明:

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

返回值说明: undefined | string 类型

Last updated