跳到主要内容

lt_client

简介

雷霆平台各种功能接入集合

重要说明

本pkg目前仅适用于雷霆平台的旧接口;雷霆平台接口升级以后,本pkg不再适用,请使用pkg.leiting.*系列接入雷霆平台!!!

提供几种接口:

反沉迷

  1. 登录上报 - LtAddictionLogin / LtAddictionLoginResult

  2. 登出上报 - LtAddictionLogout / LtAddictionLogoutResult

  3. 通知下线 - LtAddictionNotifyLogout

登录验证:

  1. 登录验证- LtAuth / LtAuthResult

充值相关:

  1. 充值订单通知 - LtChargeBillNotify

  2. 订单异常上报 - LtChargeReportBillExecption

数据上报相关:

  1. 注册日志上报 - LtLogMonitorRegister

  2. 登入登出日志上报 - LtLogMonitorLoginLogout

  3. 创角日志上报 - LtLogMonitorCreateRole

  4. 充值日志上报 - LtLogMonitorCharge

  5. 广告变现日志上报 - LtLogMonitorAdReport

组件接口

LtAddictionLogin

继承自 LtClientRequestBase

防沉迷登录上报

成员变量

变量名类型初始值须初始化描述
idCardstringnil可选身份唯一标识(SDK服务端登录验证接口返回)
是否必填 - Y
gamestringnil可选游戏标识
是否必填 - Y
ageint0可选年龄(SDK服务端登录验证接口返回)
是否必填 - Y
isFastint1可选游客标识(SDK服务端登录验证接口返回)
1:游客 (其他状态为非游客)
是否必填 - Y
gidstringnil可选游戏角色Id(暂不支持角色ID包含“~”字符,如包含此字符需反馈给平台),
如果游戏没有角色则传userId,否则通知下线时游戏不知道要踢哪个账号下线
是否必填 - Y
gameZonestringnil可选区组(暂不支持区组包含“~”字符,如包含此字符需反馈给平台)
是否必填 - N
notifyUrlstringnil可选通知下线地址
是否必填 - Y
companystring"leiting"可选运营公司主体
leiting:雷霆(默认)
jys:吉游社
demo:DEMO SDK
是否必填 - Y
tokenstringnil可选签名
1、参数拼接:age + game + idCard + isFast + KEY(KEY咨询运维,告知运维配置位于:平台配置中心->leiting节点->api.key.{游戏标识}配置)
2、拼接后的参数计算MD5
3、MD5转小写
是否必填 - Y

成员方法

函数原型函数作用
string get_url(string host)获取上报地址
void sign_by_key(string key)签名
array request(string host)执行上报请求

LtAddictionLoginResult

防沉迷登录上报请求结果

成员变量

变量名类型初始值须初始化描述
onlineTimeint0可选在线时长(单位:秒)
timestampint0可选当前时间戳(单位:秒)
limitTimeint0可选限制时长(单位:秒)
usableTimeint0可选剩余可用时长(单位:秒)
isHolidayint2可选是否节假日
1:节假日
2:非节假日

成员方法

函数原型函数作用
bool is_holiday()判断是否节假日

LtAddictionLogout

继承自 LtClientRequestBase

防沉迷登出上报

成员变量

变量名类型初始值须初始化描述
companystring"leiting"可选运营公司主体
leiting:雷霆(默认)
jys:吉游社
demo:DEMO SDK
是否必填 - Y
gamestringnil可选游戏标识
是否必填 - Y
gameZonestringnil可选区组(登录上报有传,登出必须传,否则不会踢下线)
是否必填 - N
gidstringnil可选角色ID(必填,否则不知道登出哪个角色)
是否必填 - Y
idCardstringnil可选身份唯一标识(登录验证返回)
是否必填 - Y
tokenstringnil可选签名
1、参数拼接:game + idCard + KEY(KEY咨询运维,告知运维配置位于:平台配置中心->leiting节点->api.key.{游戏标识}配置)
2、拼接后的参数计算MD5
3、MD5转小写
是否必填 - Y

成员方法

函数原型函数作用
string get_url(string host)获取上报地址
void sign_by_key(string key)签名
array request(string host)执行上报请求

LtAddictionLogoutResult

防沉迷上报结果

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

LtAddictionLogoutNotify

雷霆平台推送给游戏服务器的登出通知

成员变量

变量名类型初始值须初始化描述
ageint0可选年龄
gamestringnil可选游戏标识
gameZonestring""可选区组(是否有值取决于登录上报是否有传值)
gidstringnil可选角色Id(是否有值取决于登录上报是否有传值)
isFastint1可选游客标识
1:游客
2:非游客
isHolidayint2可选是否节假日
1:节假日
2:非节假日
onlineTimeint0可选在线时长(单位:秒)
timestampint0可选当前时间戳(单位:秒)
tokenstringnil可选签名
1、参数拼接:age + game + gameZone + isFast + isHoliday + onlineTime + timestamp + type + KEY(KEY咨询运维,告知运维配置位于: 平台配置中心->leiting节点->api.key.{游戏标识}配置)
2、拼接后的参数计算MD5
3、MD5转小写
typeint3可选踢下线类型
1:达到在线时长上限
2:限制时间段不允许体验游戏
3:客服踢下线

成员方法

函数原型函数作用
bool check_sign_by_key(string key)验证签名有效性
bool is_holiday()是不是假日
bool is_guest()是不是游客
bool is_kicked_off_by_online_time()是不是达到在线时长上限被踢下线
bool is_kicked_off_by_game_time()是不是限制时间段不允许体验游戏被踢下线
bool is_kicked_off_by_gm()是不是客服踢下线

LtAddictionLogoutNotifyResult

游戏服务器处理下线通知的处理结果

成员变量

变量名类型初始值须初始化描述
messagestringnil可选描述信息
statusint0可选状态码
0:成功
30001:服务器繁忙
70001:参数缺失
70002:参数校验失败
70003:签名校验失败
70007:平台配置错误

成员方法

函数原型函数作用
void set_ok()设置处理结果为成功
void set_error_code(int code, string message = nil)设置处理结果为失败并设置错误码以及提示信息
void set_error_by_server_busy(string message = nil)设置处理结果为服务器繁忙导致的操作失败并设置提示信息
void set_error_by_token(string message = nil)设置处理结果为签名校验失败导致的操作失败并设置提示信息

LtAuthRequest

继承自 LtClientRequestBase

雷霆平台登录验证

成员变量

变量名类型初始值须初始化描述
userIdstringnil可选用户ID,如果接入篝火测试,该字段(会有特殊符号如:=和+)需要encode
是否必填-Y
gamestringnil可选游戏标识(参考:获取SDK配置)
是否必填 - Y
channelNoint-1可选渠道编号(参考:获取SDK配置)
是否必填 - Y
tokenstringnil可选SDK登录回调的验证token信息
是否必填 - Y

成员方法

函数原型函数作用
string get_url(string host)获取验证地址
array request(string host)执行验证请求

LtAuthResult

雷霆平台登录验证结果

成员变量

变量名类型初始值须初始化描述
ageint0可选年龄(未实名认证、游客年龄、不提供年龄的渠道值为0)
是否必填 - Y
authint2可选实名认证防沉迷状态
0:已实名认证未成年
1:已实名认证成年人
2:未实名认证
是否必填 - Y
birthDaystringnil可选生日
官方渠道已实名有值,第三方渠道为空值
(数据格式:MMdd eg.0809)
是否必填 - N
idCardstringnil可选身份标识
是否必填 - Y
isGuestint1可选游客标识(默认游客)
0:非游客
1:游客
是否必填 - Y

成员方法

函数原型函数作用
bool is_auth_juveniles()是不是已实名认证未成年
bool is_auth_adult()是不是已实名认证成年人
bool is_unauth()是不是未实名认证
bool is_guest()是不是游客

LtChargeOrderNotify

雷霆平台推送给游戏服务器的充值订单通知

成员变量

变量名类型初始值须初始化描述
currencystringnil可选币种(默认coin渠道币)
是否必填 - Y
gameCoinstringnil可选游戏币
是否必填 - Y
gameOrderNostringnil可选游戏订单号
游戏需要将此字段与游戏订单中的订单号做校验,否则会被盗刷!!!
是否必填 - Y
messagestringnil可选描述
是否必填 - Y
productIdstringnil可选游戏拉起充值时传入的商品id(iOS返回,Android返回"")
游戏需要将此字段与游戏订单中的商品id做校验,否则会被盗刷!!!
是否必填 - Y
signstringnil可选签名(见签名规则)
游戏需要使用游戏订单中的数据计算sign并与此字段做校验,否则会被盗刷!!!
是否必填 - Y
statusstringnil可选订单状态
success:成功
其他状态:失败
是否必填 - Y
thirdAmountstringnil可选第三方返回金额(分)
游戏需要将此字段与游戏订单中的金额做校验,否则会被盗刷!!!
是否必填 - Y
thirdNostringnil可选第三方订单号(iOS渠道为雷霆订单号)
是否必填 - Y
channelNostringnil可选渠道编号
游戏需要将此字段与游戏订单中的渠道编号做校验,否则会被盗刷!!!
是否必填 - Y
userIdstringnil可选手游账号ID
游戏需要将此字段与游戏订单中的userId做校验,否则会被盗刷!!!
是否必填 - Y
extInfostringnil可选透传字段,充值成功时原样回传给游戏服务端通知接口
是否必填 - N

成员方法

函数原型函数作用
bool check_sign_by_key(string key)验证签名有效性
bool is_ok()检查充值订单状态是否为成功

LtChargeReportOrderException

继承自 LtClientRequestBase

上报充值订单异常

成员变量

变量名类型初始值须初始化描述
channelNostringnil可选渠道编号
是否必填 - Y
gamestringnil可选游戏标识
是否必填 - Y
gameOrderNostringnil可选游戏订单号
是否必填 - Y
signstringnil可选签名(见签名规则)违规如下(ltkey值请找平台组提供)
MD5(game+ channelNo +gameOrderNo+status+ltkey)
是否必填 - Y
ipstringnil可选ip白名单校验失败时,需要把异常ip传过来
是否必填 - N
statusint0可选异常代码
9:订单金额不一致
10:productId、transactionId字段为空
11:bid错误
12:productId校验失败
13:transactionId不一致
14:userId不一致
98:白名单异常
99:其他情况
是否必填 - Y

成员方法

函数原型函数作用
string get_url(string host)获取上报充值订单异常的地址
void sign_by_key(string key)签名
array request(string host)执行上报充值订单异常的请求

LtClientRequestBase

向雷霆平台发送请求的基础类型

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用
array parse_result(HttpResponse http_result)解析请求结果

LtGiftVerifyCode

继承自 LtClientRequestBase

验证礼包兑换码请求

成员变量

变量名类型初始值须初始化描述
gamestringnil可选游戏标识
是否必填 - Y
sidstringnil可选账号唯一标识,雷霆sdk登录成功后返回的userId 字段
是否必填 - Y
ridstringnil可选角色id
是否必填 - Y
zoneIdstringnil可选区组id
是否必填 - Y
channelstringnil可选渠道编号
是否必填 - Y
codestringnil可选礼包码
是否必填 - Y
signstringnil可选接口签名
是否必填 - Y
签名方式:
1.code + "%" + timeStamp + "%" + key
2.将第一步得到的字符串进行md5计算并将结果转小写
timeStampstringnil可选请求时间(格式yyyy-MM-dd HH:mm:ss)
是否必填 - Y
不能晚于当前时间,且距离当前时间不能超过5分钟

成员方法

函数原型函数作用
string get_url(string host)获取验证地址
void sign_by_key(string key)签名
array request(string host)执行验证请求

LtGiftVerifyCodeResult

验证礼包兑换码请求结果

成员变量

变量名类型初始值须初始化描述
statusint0可选
messagestringnil可选

成员方法

函数原型函数作用
bool is_ok()是否通过验证

LtGmNotify

雷霆平台向游戏服务器推送的GM通知

成员变量

变量名类型初始值须初始化描述
requestIdstringnil可选
signstringnil可选

成员方法

函数原型函数作用
bool check_sign_by_key(string key)验证签名有效性

LtGmNotifyResult

游戏服务器处理GM通知的处理结果

成员变量

变量名类型初始值须初始化描述
statusint0可选0为成功,1为失败
messagestringnil可选返回信息
datamixednil可选返回数据,返回类型根据具体接口决定

成员方法

函数原型函数作用
void set_to_success(string message = nil, mixed data = nil)设置处理结果为成功并且设置结果数据和提示信息
void set_to_fail(string message = nil, mixed data = nil, int status = 1)设置处理结果为失败并且设置结果数据和提示信息

LtGmNotifySendGift

继承自 LtGmNotify

雷霆平台向游戏服务器推送的发放礼包通知

成员变量

变量名类型初始值须初始化描述
zoneIdstringnil可选区组id
是否必选 - Y
accountstringnil可选游戏账号,PS:该账号是游戏客户端调用SDK loginCallBack获取的userId数据,游戏服务端可以和研发客户端对下
是否必选 - Y
ridstringnil可选角色id
是否必选 - Y
opstringnil可选固定为"send_reward"
是否必选 - Y
timestampint0可选时间戳(单位秒)
是否必选 - Y
titlestringnil可选邮件标题
是否必选 - Y
contentstringnil可选邮件内容
是否必选 - Y
rewardsstringnil可选奖励道具列表
json字符串 [ {"class_id":"000001","amount":100},{"class_id":"000002","amount":200} ]
是否必选 - Y
requestIdstringnil可选唯一标识,字符串,长度不超过128个字符,游戏侧需要根据该字段进行防超发设计,防止出现礼包超发。对于多个请求使用同一个requestId的情况,游戏需要保证只能有一个请求发送成功。
是否必选 - Y
extInfostringnil可选json字符串,礼包发放额外信息
是否必选 - N

成员方法

函数原型函数作用

LtLogMonitorRequestBase

继承自 LtClientRequestBase

日志上报 - 向雷霆平台发起日志上报请求的基础类

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用
string get_url(string host)获取上报地址
array request(string host)执行请求

LtLogMonitorRegister

继承自 LtLogMonitorRequestBase

日志上报 - 注册

成员变量

变量名类型初始值须初始化描述
gameTypeint1可选游戏类别(1:手游,2:端游,3:页游)
是否必填 - Y
gameCodestringnil可选游戏标识,SDK客户端登录成功回调中,SDK服务端验证Token接口中都有返回,字段名是“game”
是否必填 - Y
accountNamestringnil可选userId新增时的渠道编号+userId,如110001abcdefgh,注意渠道编号和userId之间不需要"-"
是否必填 - Y
signstringnil可选签名,md5(accountName+key+createDate),key见【飞天数据上报】页面,md5后统一转小写
是否必填 - Y
createDatestringnil可选调用日志接口时的当前时间,格式为:yyyy-MM-dd HH:mm:ss;必须与sign中的createDate相同
是否必填 - Y
accountIdstringnil可选账号ID
是否必填 - N
sidfastringnil可选SDK上报
是否必填 - N
uastringnil可选用户UA
是否必填 - N
channelstringnil可选渠道编码,SDK客户端登录成功回调中,SDK服务端验证token接口中都有返回
是否必填 - Y
clientVerstringnil可选游戏客户端版本号,100字符内:
安卓获取版本名称;
iOS获取CFBundleShortVersionString
是否必填 - Y
mediastringnil可选Android端必填:
获取方式:
String media = LeitingSDK.getInstance().getPropertiesValue("media")
iOS端不必填
是否必填 - Y
osVerstringnil可选“系统版本”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
terminInfostringnil可选“手机设备型号”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
macstringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
imeistringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
ipstringnil可选游戏服务端获取游戏客户端网络连接的真实ip。明文发送无需加密
是否必填 - Y
extendstringnil可选通过客户端提供的getDeviceInfo("5")方法获取,数据为加密数据。返回值直接作为extend值上报无需解析。
是否必填 - Y

成员方法

函数原型函数作用
void sign_by_key(string key)签名
string get_url(string host)获取上报地址

LtLogMonitorLoginLogout

继承自 LtLogMonitorRequestBase

日志上报 - 登入登出

成员变量

变量名类型初始值须初始化描述
gameTypeint1可选游戏类别(1:手游,2:端游,3:页游)
是否必填 - Y
gameCodestringnil可选游戏标识,SDK客户端登录成功回调中,SDK服务端验证Token接口中都有返回,字段名是“game”
是否必填 - Y
accountNamestringnil可选userId新增时的渠道编号+userId,如110001abcdefgh,注意渠道编号和userId之间不需要"-"
是否必填 - Y
loginModeintnil可选登录/登出(1:登录,2:登出);注意登录登出均需上报;
是否必填 - Y
loginTypeintnil可选登录/登出类型(1:正常,2:顶号)
是否必填 - Y
newAccountintnil可选是否首次登陆(首次登录的账号记为1,不是首次登录就是2)
是否必填 - Y
creditAccountintnil可选是否付费账号(1:是,2:否,新创建账号时为2)
是否必填 - Y
signstringnil可选签名,md5(accountName+key+createDate),key见【飞天数据上报】页面,md5后统一转小写
是否必填 - Y
createDatestringnil可选调用日志接口时的当前时间,格式为:yyyy-MM-dd HH:mm:ss;必须与sign中的createDate相同
是否必填 - Y
timeUsedintnil可选在线时长(登录时记录为0,登出时记录在线时长,单位秒)
是否必填 - N
diamondAmountintnil可选钻石数量
是否必填 - N
goldAmountintnil可选金币数量
是否必填 - N
physicalValueintnil可选当前体力值
是否必填 - N
vipLevelintnil可选会员等级
是否必填 - N
lastLoginDatestringnil可选上次登录时间,格式为:yyyy-MM-dd HH:mm:ss;注意:格式错误会导致上报失败
是否必填 - N
sidfastringnil可选SDK上报
是否必填 - N
uastringnil可选用户UA
是否必填 - N
roleNamestringnil可选角色名称
是否必填 - Y
roleIdstringnil可选角色id
是否必填 - Y
roleLevelintnil可选角色等级
是否必填 - Y
serverNamestringnil可选区组名称
是否必填 - Y
serverIdstringnil可选区组id
是否必填 - Y
channelstringnil可选渠道编码,SDK客户端登录成功回调中,SDK服务端验证token接口中都有返回
是否必填 - Y
clientVerstringnil可选游戏客户端版本号,100字符内:
安卓获取版本名称;
iOS获取CFBundleShortVersionString
是否必填 - Y
mediastringnil可选Android端必填:
获取方式:
String media = LeitingSDK.getInstance().getPropertiesValue("media")
iOS端不必填
是否必填 - Y
osVerstringnil可选“系统版本”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
terminInfostringnil可选“手机设备型号”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
macstringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
imeistringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
ipstringnil可选游戏服务端获取游戏客户端网络连接的真实ip。明文发送无需加密
是否必填 - Y
extendstringnil可选通过客户端提供的getDeviceInfo("5")方法获取,数据为加密数据。返回值直接作为extend值上报无需解析。
是否必填 - Y

成员方法

函数原型函数作用
void sign_by_key(string key)签名
string get_url(string host)获取上报地址

LtLogMonitorCreateRole

继承自 LtLogMonitorRequestBase

日志上报 - 创角

成员变量

变量名类型初始值须初始化描述
gameTypeint1可选游戏类别(1:手游,2:端游,3:页游)
是否必填 - Y
gameCodestringnil可选游戏标识,SDK客户端登录成功回调中,SDK服务端验证Token接口中都有返回,字段名是“game”
是否必填 - Y
accountNamestringnil可选userId新增时的渠道编号+userId,如110001abcdefgh,注意渠道编号和userId之间不需要"-"
是否必填 - Y
signstringnil可选签名,md5(accountName+key+createDate),key见【飞天数据上报】页面,md5后统一转小写
是否必填 - Y
createDatestringnil可选调用日志接口时的当前时间,格式为:yyyy-MM-dd HH:mm:ss;必须与sign中的createDate相同
是否必填 - Y
roleNamestringnil可选角色名称
是否必填 - Y
roleIdstringnil可选角色id
是否必填 - Y
roleLevelintnil可选角色等级
是否必填 - Y
serverNamestringnil可选区组名称
是否必填 - Y
serverIdstringnil可选区组id
是否必填 - Y
channelstringnil可选渠道编码,SDK客户端登录成功回调中,SDK服务端验证token接口中都有返回
是否必填 - Y
clientVerstringnil可选游戏客户端版本号,100字符内:
安卓获取版本名称;
iOS获取CFBundleShortVersionString
是否必填 - Y
sidfastringnil可选SDK上报
是否必填 - N
uastringnil可选用户UA
是否必填 - N
mediastringnil可选Android端必填:
获取方式:
String media = LeitingSDK.getInstance().getPropertiesValue("media")
iOS端不必填
是否必填 - Y
osVerstringnil可选“系统版本”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
terminInfostringnil可选“手机设备型号”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
macstringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
imeistringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
ipstringnil可选游戏服务端获取游戏客户端网络连接的真实ip。明文发送无需加密
是否必填 - Y
extendstringnil可选通过客户端提供的getDeviceInfo("5")方法获取,数据为加密数据。返回值直接作为extend值上报无需解析。
是否必填 - Y

成员方法

函数原型函数作用
void sign_by_key(string key)签名
string get_url(string host)获取上报地址

LtLogMonitorCharge

继承自 LtLogMonitorRequestBase

日志上报 - 充值

成员变量

变量名类型初始值须初始化描述
gameTypeint1可选游戏类别(1:手游,2:端游,3:页游)
是否必填 - Y
gameCodestringnil可选游戏标识,SDK客户端登录成功回调中,SDK服务端验证Token接口中都有返回,字段名是“game”
是否必填 - Y
accountNamestringnil可选userId新增时的渠道编号+userId,如110001abcdefgh,注意渠道编号和userId之间不需要"-"
是否必填 - Y
typeintnil可选操作类型(1:增加,2:减少)
是否必填 - Y
moneyTypemixednil可选金钱类型
1:钻石
2:金币
3:游戏充值币
4:会员/VIP
5:礼包或道具等
6:代金券
是否必填 - Y
signstringnil可选签名,md5(accountName+key+createDate),key见【飞天数据上报】页面,md5后统一转小写
是否必填 - Y
createDatestringnil可选调用日志接口时的当前时间,格式为:yyyy-MM-dd HH:mm:ss;必须与sign中的createDate相同
是否必填 - Y
actionstringnil可选涉及系统(如:副本、任务、礼包等)
是否必填 - N
moneyChangeintnil可选金钱变化值
是否必填 - N
sidfastringnil可选SDK上报
是否必填 - N
uastringnil可选用户UA
是否必填 - N
moneyLeftintnil可选剩余金钱值
是否必填 - Y
orderIdstringnil可选传游戏订单号(与调用sdk pay接口传入的orderId一致)
是否必填 - Y
payChannelstringnil可选支付渠道名称(如:苹果、微信、支付宝、银联等,安卓默认传支付宝)
是否必填 - N
roleNamestringnil可选角色名称
是否必填 - Y
roleIdstringnil可选角色id
是否必填 - Y
roleLevelintnil可选角色等级
是否必填 - Y
serverNamestringnil可选区组名称
是否必填 - Y
serverIdstringnil可选区组id
是否必填 - Y
channelstringnil可选渠道编码,SDK客户端登录成功回调中,SDK服务端验证token接口中都有返回
是否必填 - Y
clientVerstringnil可选游戏客户端版本号,100字符内:
安卓获取版本名称;
iOS获取CFBundleShortVersionString
是否必填 - Y
pricemixednil可选充值金额(RMB:元),请注意用元作为单位,支持2位小数的字符串
是否必填 - Y
productIdstringnil可选iOS上报苹果内购id,安卓上报商品id;
是否必填 - Y
mediastringnil可选Android端必填:
获取方式:
String media = LeitingSDK.getInstance().getPropertiesValue("media")
iOS端不必填
是否必填 - Y
osVerstringnil可选“系统版本”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
terminInfostringnil可选“手机设备型号”通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
macstringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
imeistringnil可选通过客户端提供的getDeviceInfo("1")方法获取,数据为加密数据
是否必填 - Y
ipstringnil可选游戏服务端获取游戏客户端网络连接的真实ip。明文发送无需加密
是否必填 - Y
extendstringnil可选通过客户端提供的getDeviceInfo("5")方法获取,数据为加密数据。返回值直接作为extend值上报无需解析。
是否必填 - Y

成员方法

函数原型函数作用
void sign_by_key(string key)签名
string get_url(string host)获取上报地址

LtLogMonitorAdReport

继承自 LtLogMonitorRequestBase

日志上报 - 广告操作

成员变量

变量名类型初始值须初始化描述
accountstringnil可选userId新增时的渠道编号+userId,如110001abcdefgh,注意渠道编号和userId之间不需要"-"
是否必填 - Y
channelstringnil可选渠道编码请参考【(四)主流渠道接入研发必读】中的【常用渠道编号】(sdk客户端登录成功回调中,sdk服务端验证token接口中都有返回)
是否必填 - Y
gameCodestringnil可选游戏标识(sdk客户端登录成功回调中,sdk服务端验证token接口中都有返回)
是否必填 - Y
placestringnil可选广告位名称,自定义,建议控制在20个字符以内
是否必填 - Y
sidstringnil可选角色id
是否必填 - Y
signstringnil可选签名 md5(gameCode+sid +account+ channel + key) 转小写,key详见代码
是否必填 - Y
statusintnil可选状态:
1:点击观看按钮;
2:点击观看;
3:观看成功;
4:获得奖励;
5:使用奖励;
6:广告出错;
7:转化(广告观看完成时,点击去下载等交互按钮)
是否必填 - Y
mediastringnil可选广告变现平台,如穿山甲,upltv,topon
是否必填 - Y
imeistringnil可选通过客户端提供的方法getDeviceInfo("1")获取加密数据
是否必填 - Y
macstringnil可选通过客户端提供的方法getDeviceInfo("1")获取加密数据
是否必填 - Y
extendstringnil可选通过客户端提供的getDeviceInfo("5")方法获取,数据为加密数据。返回值直接作为extend值上报无需解析
是否必填 - Y

成员方法

函数原型函数作用
void sign_by_key(string key)签名
string get_url(string host)获取上报地址

样例

public void pkg_sample()
{
import pkg.lt_client;
LtAddictionLogin a = LtAddictionLogin.new();
a.age = 18;
a.game = "bbb";
// ...
// ...

// 签名后再请求
a.sign_by_key("KEY");
let bool success, mixed result = a.request("https://xxx.xxx.com");
if (! success)
// 操作失败
return;
// result此时是LtAddictionLoginResult实例
printf("%M\n", result);
}

public void pkg_sample2()
{
import pkg.lt_client;
LtAuthRequest a = LtAuthRequest.new();
a.userId = "aaa";
a.game = "bbb";
// ...
// ...

// 不需要签名,直接请求
let bool success, mixed result = a.request("https://xxx.xxx.com");
if (! success)
// 操作失败
return;
// result此时是LtAuthResult实例
printf("%M\n", result);
}


public void test()
{
map params ={
"gameType": 1,
"gameCode": "xian",
"accountName": "110001h347hswj",
"sign": "bb9c46526c8aced67b71bc154f711f0f",
"createDate": "2021-08-02 17:02:58",
"accountId": "8265126",
"channel": "110001",
"clientVer": "1.0.21072801",
"media": "M156992",//Android端必填,iOS端不必填;
"osVer": "bF/r408r4mucbe2aEP6DIg==",
"terminInfo": "FtzgY2MiqG9HxyM4s1CLAQ==",
"ip": "101.101.101.101",
"mac": "Hqs40V5q/SQgsJcZpjJBa%252Bk3YRTViuIQEP4GuU4vr/E=",
"imei": "WDVvWoPl3Q8QVwfYFeEyaw==",
"extend": "{\"oaid\":\"xQ%252BSZpSY5ylX0z6kNi3fjFq4xNyYziQoyJeStPtGd3u0mOkGQszyx114uNF9MyRM%252B7WosoRYpYEgHUiS1jXd2/0rAPej6%252BLa21W9NNEkZo8=\",\"androidId\":\"x0eKEpf3pQ0awMr9QNgw3v0rAPej6%252BLa21W9NNEkZo8=\",\"encode\":\"1\"}"
};
LtLogMonitorRegister req = LtLogMonitorRegister.new_by_map(params);
req.sign_by_key("#Leiting#");
let bool success, mixed result = req.request("https://logmonitor.leiting.com");
printf("test1: success=%M result=%M\n", success, result);
}

public void test2()
{
map params = {
"gameType": 1,
"gameCode": "xian",
"accountName": "1100018d6jalag",
"loginMode": 2,
"loginType": 1,
"newAccount": 2,
"creditAccount": 2,
"sign": "2943dfe19a6846d847dd3aa2d5a3cbef",
"createDate": "2021-08-02-10:20:01",
"roleName": "小老鼠",
"roleId": "U01B320EF3C3F0002",
"roleLevel": 21,
"serverName": "无敌内测",
"serverId": "1740",
"channel": "110001",
"clientVer": "1.0.21072801",
"media": "M156992",
"osVer": "MlvY9Xa%252BlqTBvuSHza5NvQ==",
"terminInfo": "YLtcAfOKYKI/d2Y1cEJTPw==",
"ip": "101.101.101.101",
"mac": "fQYAYZzCFn2XV6D1D/i%252BVmsdYuCxQD/QK2xgeTh5GMM=",
"imei": "WDVvWoPl3Q8QVwfYFeEyaw==",
"extend":"{\"oaid\":\"0vujSlUYhYXhNBRNCfnQSpjWSvr8WOCIPnNHiH/wCoL%252BTeoPHNKa/boL6oD0%252B5WQ\",\"androidId\":\"xIwgSnz/ujNoqcUVm71E3f0rAPej6%252BLa21W9NNEkZo8=\",\"encode\":\"1\"}",
};
LtLogMonitorLoginLogout req = LtLogMonitorLoginLogout.new_by_map(params);
req.accountName = "test001";
req.createDate = "20190808";
req.gameCode = "lt-xx2";
req.loginMode = 1;
req.loginType = 1;
req.newAccount = 1;
req.creditAccount = 1;
req.sign_by_key("#Leiting#");
let bool success, mixed result = req.request("https://logmonitor.leiting.com");
printf("test2: success=%M result=%M\n", success, result);
}

public void test3()
{
map params = {
"gameType": 1,
"gameCode": "xian",
"accountName": "110001b9uotksj",
"sign": "5155beb5e4d86abbf6b33f7efe84ca8a",
"createDate": "2021-08-02-17:11:25",
"roleName": "小老鼠",
"roleId": "U01CDA107B603002B",
"serverName": "无敌内测",
"serverId": "1846",
"channel": "110001",
"clientVer": "1.0.21072801",
"media": "M156992", //安卓端必传,ios不必传
"osVer": "cS1PlIvMcEmMJ9MvQZf6/A==",
"terminInfo": "ZSIjdNFRb1ekOCwBMDgvlQ==",
"ip": "101.101.101.101",
"mac": "3IdGrlOZX5bw0J9aDtuIE7HSiP7W88g6iyeIzsM4iVE=",
"imei": "WrSiKR3n2%252B4WRk3dh%252BCUOA==",
"extend": "{\"oaid\":\"\",\"androidId\":\"W/U/Nu2PIcoyA8/TWChcwv0rAPej6%252BLa21W9NNEkZo8=\",\"encode\":\"1\"}"
};
LtLogMonitorCreateRole req = LtLogMonitorCreateRole.new_by_map(params);
req.accountName = "110001b9uotksj";
req.createDate = "2021-08-02-17:11:25";
req.gameCode = "lt-xx2";
req.sign_by_key("#Leiting#");
let bool success, mixed result = req.request("https://logmonitor.leiting.com");
printf("test3: success=%M result=%M\n", success, result);
}

public void test4()
{
map params = {
"gameType": 1,
"gameCode": "xian",
"accountName": "2100092mteusa5",
"type": 1,
"moneyType": 5,
"sign": "28bd5b3c7afd07326153ed07767a0f58",
"createDate": "2021-08-02-10:20:01",
"moneyLeft": 0,
"orderId": "O01CA6107563E0018",
"roleName": "小老鼠",
"roleId": "U01CA6104B0EF0007",
"roleLevel": 17,
"serverName": "无敌内测",
"serverId": "1833",
"channel": "210009",
"clientVer": "1.0.21071401",
"price": 6,
"productId":"11001",
"osVer": "rsINfGm19xvR6TWu3VAvzg==",
"terminInfo": "IC2vbFZqquh/unc90L2vfA==",
"ip": "101.101.101.101",
"mac": "x8fN1qSDed4Ys8%252B162WW1S5pXa5xYT9cOVgSHTmgcNV8wu7bpRMvs6Au4smWIR/f",
"imei": "0vujSlUYhYXhNBRNCfnQSpjWSvr8WOCIPnNHiH/wCoL%252BTeoPHNKa/boL6oD0%252B5WQ",
"extend": "{\"new_version\":\"iR3B0dizFab9bZ688sqAiw==\",\"last_version\":\"Ak8VvYsQR9vi4SowV46jFw==\",\"new_caid\":\"VxdxJXwBHKMyjyBxYrHJPkGHTDw2unm3UZ7ZBGiOgaH9KwD3o%252Bvi2ttVvTTRJGaP\",\"last_caid\":\"T%252B233857y859HbRRse6Y3CPQ4qkLSEeiLVX2gKV4t4b9KwD3o%252Bvi2ttVvTTRJGaP\",\"encode\":\"1\"}"
};
LtLogMonitorCharge req = LtLogMonitorCharge.new_by_map(params);
let bool success, mixed result = req.request("https://logmonitor.leiting.com");
printf("success=%M result=%M\n", success, result);
}

import pkg.cjson;
public void test5()
{
LtLogMonitorAdReport req = LtLogMonitorAdReport.new();

req.account = "2100091ftispkm";
req.channel = "21009";
req.gameCode = "xian";
req.place = "首页";
req.sid = "U00E4204DE9460000";
req.sign = "be521d4e7cfd64a5f5b49b7304987895";
req.status = 2;
req.media = "media";
req.imei = "HxIi/aRYtHsJOqn%2BQlHaHJ9tPdUmmJEbHtEDNzX/qw4r2ppSFMLKSRjz0EG89aqi";
req.mac = "eH0MZ3oNQdQKP%2BT0RRr9OTEw2GiJZyUi44S/LnCR2E8DJfyhcbssaix0AldvEYmx";

map extend = {
"new_version" : "iR3B0dizFab9bZ688sqAiw==",
"last_version" : "Ak8VvYsQR9vi4SowV46jFw==",
"new_caid" : "TA92MKtu3DRpMzMZ4R9iFz9JeEoEfDfWbtpo1MtgG/L9KwD3o%2Bvi2ttVvTTRJGaP",
"last_caid" : "OJkiL8kLTUWfDy/wgXvx/D9cJ6qKAfMdiOWZD1qJYhL9KwD3o%2Bvi2ttVvTTRJGaP",
"encode" : "1",
};
req.extend = cjson.dumps(extend, true);
let bool success, mixed result = req.request("https://logmonitor.leiting.com");
printf("test5: success=%M result=%M\n", success, result);
}