本模块功能自运营 SDK 3.18.0 开始提供。
当您的游戏需开放新章节、新主线等付费的 DLC 内容时,您可使用 DLC 正版验证服务完成用户的解锁资格验证。
在正式接入DLC前,接入方需要确认以下流程已完善:
在调用本服务相关接口前,游戏应先调用下面前置接口:
调用时机: 账号登录后
/*
* 获取DLC商品列表
*/
DLC.querySkuList(new OpeDataListener<List<DLCSku>>() {
/*
* 查询结果回调
*
* code:0、查询成功;3、查询失败(网络异常或服务器异常)
* message:状态说明
* skuList:商品列表
*
*/
@Override
public void onFinished(int code, @Nullable String message, List<DLCSku> skuList) {
// 展示商品列表
for (DLCSku dlcSku : skuList) {
}
}
});DLCSku 实体类:
| 参数信息 | 描述 | 获取方式 |
|---|---|---|
id |
商品id | dlcSku.getId() |
name |
商品名称 | dlcSku.getName() |
price |
实付金额 | dlcSku.getPrice() |
originalPrice |
原价(划线价) | dlcSku.getOriginalPrice() |
调用时机: 账号登录后
/*
* 购买商品
*
* skuId:商品id
* mark:游戏发起充值时生成唯一标识,用于游戏方服务端向SDK服务端发起订单查询的凭证(可空,最大长度:35位)
*/
DLC.purchase(skuId, mark, new OpeResultListener() {
/*
* 购买结果回调
*
* code:0、支付成功;1、用户取消支付;3、支付失败(网络异常或服务器异常);5、用户之前已购买过该商品;7、商品已下架
* message:状态说明
*/
@Override
public void onResult(int code, @Nullable String message) {
}
});调用时机: 账号登录后
// 若不指定 skuId,将查询所有商品
ArrayList<String> skuIds = new ArrayList<>();
skuIds.add(skuId);
skuIds.add(skuId);
DLC.querySkuState(skuIds, new OpeDataListener<List<DLCSkuState>>() {
/*
* 查询结果回调
*
* code:0、查询成功;3、查询失败(网络异常或服务器异常)
* message:状态说明
* skuStateList:带状态的商品列表
*/
@Override
public void onFinished(int code, @Nullable String message, List<DLCSkuState> skuStateList) {
for (DLCSkuState dlcSkuState : skuStateList) {
}
}
});DLCSkuState 实体类:
| 参数信息 | 描述 | 获取方式 |
|---|---|---|
id |
商品id | dlcSkuState.getId() |
name |
商品名称 | dlcSkuState.getName() |
price |
实付金额 | dlcSkuState.getPrice() |
originalPrice |
原价(划线价) | dlcSkuState.getOriginalPrice() |
isPurchased |
是否已购买 | dlcSkuState.isPurchased() |
status |
商品上架状态,0:下架; 1:上架 | dlcSkuState.getStatus() |