激励配置接口
激励抽奖接口的demo在LotteryActivity.java里
业务描述
抽奖方式:
支持以下抽奖方式
1. 免费抽奖:即用户可免费进行抽奖
2. 消耗抽奖:即需要消耗商城积分进行抽奖
3. 混合型抽奖:先进行免费抽奖,在免费次数用尽后再进行消耗型抽奖
4. 消费抽奖:用户在购买商品时 可按配置的几率返回奖品(无需APP对接,即可实现)
抽奖策略:
几率型抽奖:配置一定几率的抽奖
奖种说明:
1) 虚拟商品
集分宝、红包(全网或指定商品)、代金卷、淘金币、天猫积分、商城积分、电影票、彩票、APP礼包
2) 实物奖品
免费商品:可发放有天猫/淘宝店铺或无店铺的实物奖品。
折扣商品:用户可通过扫码购买折扣商品;折扣率后台可配置。
其他说明:
1) eventKey
APP中用来定义满足抽奖的事件,每个eventKey对应一个抽奖活动,活动策略由激励后台配置如果增加了eventKey,一般需APP更新安装包。
2)激励后台
- 激励后台可根据APP的需求,配置相应的抽奖活动,每个活动对应一个eventKey。
- 抽奖活动过期后,即使APP再次调用eventKey进行抽奖,也不会中奖。
- 若一个APP存在多个抽奖活动,则需创建多个eventKey,相同eventKey的抽奖活动时间不能重叠
- 对于消费抽奖,无需APP配置,仅需提出需求到数娱运营,运营后台配置即可
获取激励信息列表
接口说明:
获取抽奖活动信息列表,根据listener中的结果展现活动信息或做相应的处理。
返回数据里包括抽奖类型、抽奖消耗积分及免费抽奖次数等。
前置条件:
无
函数原型:
public static void getActivitesInfo(String eventKey, IReceiveActivitesListener listener)
参数说明:
eventKey:获取此ID对应的活动信息,如果传null则获取所有可用活动的的信息
Listener:活动信息返回监听,返回类型为ActivityInfoModel。
请求样例:
AliTvSdk.Lottery.getActivitesInfo (eventKey, new IReceiveActivitesListener() { @Override public void onResult(ActivityInfoModel activies) { ArrayList<ActivityInfoItem> items = model.obtainActivities(); if(items != null){ ActivityInfoItem item = items.get(0); //抽奖类型,1.免费型2.消耗型3.混合型 int luckyType = item.getLuckyType(); //抽奖一次需要消耗的积分,若免费型抽奖为0 int consumeAmount = item.getConsumeAmount()); //抽奖次数(免费或混合型抽奖初始化设置免费抽奖次数) int accessAmount = item.getAccessAmount()); AwardsList awardsList = item.getAwards(); for(int j = 0;j < awardItems.size();j++){ //根据活动信息绘制UI,详见Demo。 } } @Override public void onError(int errCode, String errMsg) { } });
返回说明
名称 | 类型 | 描述 |
activityId | String | 活动ID |
fventKey | String | 事件Key |
name | String | 活动名称 |
startTime | String | 活动开始时间 |
endTime | String | 活动结束时间 |
awardInfoItemList | ActivityInfoAwardItem
| 该活动奖项对象 可查看奖项列表 |
consumeAmount | Int | 该活动每次消耗数娱积分 若为0则不消耗 |
accessAmount | Int | 该活动免费抽奖次数 |
luckyType | Int | 抽奖类型 免费抽奖:1 消耗抽奖:2 混合抽奖:3 |
activityUrl
| String | 返回活动URL,可供CP生产二维码,用户手机扫码后在手机上展示H5页面 |
AwardInfoItemList定义
字段 | 类型 | 描述 |
activityId | Number | 活动id |
name | String | 奖项名称 |
Id | Number | 奖项id |
typeName | String | 奖种名称 |
Type | Number | 奖种代码 |
amount | Number | 奖种数量 |
Unit | String | 奖种单位 注、个、张 |
price | Number | 奖种价值 单位分 |
hyperlinkUrl | String | 自定义超链URL(如折扣二维码、业务跳转等) |
hyperlinkDesc | String | 超链文案说明 |
接口激励
接口说明:获取抽奖结果。APP内UI由CP展现。
前置条件:
需要授权,若未授权则返回未授权错误码
函数原型:
public static void getLotteryResultWithPermission(String eventKey, String confirmKey, String behaviorKey, IReceiveAwardResultListener listener)
参数说明:
eventKey: 对应的活动关键字
listener: 抽奖结果id返回监听,返回数据位ActivityAwardModel
behaviorKey(可选):行为型抽奖的Key名称
confirmKey(可选): 确认秘钥。此秘钥是由CP从阿里获得一个密钥,然后通过算法计算出的秘钥串,秘钥算法参考demo。为算法安全起见,此确认秘钥需要由cp服务器产生传回给客户端。
请求样例:
AliTvSdk.Lottery.getLotteryResultWithPermission (eventKey, String confirmKey, new IReceiveAwardResultListener() { @Override public void onResult(ActivityAwardModel activies) { if(model != null){ if(model.isResult()){ ActivityAwardItem item = model.getAward(); //提示中奖 }else{ //未中奖 } //数娱积分/金牌余额 int totalAmount = model.getTotalAmount()); //可用抽奖次数(免费) int accessAmount = model.getAccessAmount()); }else{//未中奖 } } @Override public void onError(int errCode, String errMsg) { } });
返回说明:
名称 | 类型 | 描述 |
isLucky | Boolean | 是否中奖,true为中奖,false为未中奖 |
activityAwardItem | ActivityAwardItem | 中奖:请见下文 未中奖:为空 |
totalAmount | Long | 用户剩余积分 若为负数为无效值 |
accessAmount | Int | 用户剩余免费抽奖次数 |
ActivityAwardItem定义:
字段 | 类型 | 描述 |
activityId | Number | 活动id |
Name | String | 奖项名称 |
Id | Number | 奖项id |
typeName | String | 返回的奖种名称 |
Type | Number | 奖种代码 |
Amount | Number | 奖种数量 |
Unit | String | 奖种单位 注、个、张 |
Price | Number | 奖种价值 单位分 |
simpleDesc | String | 奖种简短描述 |
fullDesc | String | 奖种完整描述 |
hyperlinkUrl | String | 自定义超链URL(如折扣二维码、业务跳转等) |
hyperlinkDesc | String | 超链文案说明 |
消费激励
前置条件:向数娱运营接口人提出配置需求,由数娱后台配置生效。无需APP对接
接入方式:
正常拉起支付
可针对特定商品配置返回的奖项,无需接入方做任何配置和UI,所有配置和展现均由数娱实现,支付后可发放的奖种如下(需用户登录后支付)
1虚拟奖品:- 平台内奖品:商城积分、App礼包
- 平台外奖品:集分宝、红包、代金卷、淘金币、天猫积分、电影票、彩票;用户
- 支持天猫或淘宝店铺的实物
- 支持无天猫或淘宝店铺的实物