请输入
菜单

SDK接入文档(客户端)


更新时间SDK版本更新内容
2025年4月8日v2.5.11、修复隐私空间加载SDK错误问题 2、新增切换账号功能 3、退出登录token失效 4、雷电圈授权登录交互优化(真机)
2025年3月13日v2.4.9.91、去掉支付参数ServerId前端纯数字校验 2、修复已知问题
2025年2月11日v2.4.9.81、优化支付体验 2、修复已知问题
2025年1月6日v2.4.9.61、热更新功能兼容更多机型
2024年11月26日v2.4.9.41、优化热更新兼容性 2、新增App授权登录
2024年9月5日v2.4.91、新增SDK热更新功能 2、删除没有用到的资源和类 3、优化失败回调接口错误信息
2024年4月24日v2.4.821、修复输入框输入后操作过快导致获取内容异常问题
2024年4月16日v2.4.811、修复弹窗展示异常问题 2、修复异常提醒弹窗展示层级异常问题
2024年3月19日v2.4.81、底层通讯协议调整,提升整体安全性 2、支持游戏热更和强更 3、简化接入流程,去除一些不必要的方法 4、优化UI界面和交互流程,提升用户体验 5、界面H5化,方便后续维护更新 6、去除library接入方式,统一为引入aar 注意:支付宝jar有更新,AndroidManifests配置以library_ldmnq里面的为准


一、接入说明

SDK资源下载链接:android-SDK-v2.4.9.8.zip

• 将压缩包里面的 library_ldmnq.aar 引入项目中。

• 出包的包体建议带上x86/x64指令集的库,模拟器上运行流畅度和稳定性会更好。

角标及闪屏页说明

•使用闪屏角标里的文件.(建议将闪屏页放在hdpi目录下)。

接口改动说明(目前接入的是2.4.8之前的版本需注意)

•初始化、登录、支付接口不再返回状态码,而是回调对应的方法。

•移除方法:DoRelease、showFloatView、hideFloatView。

请将之前的版本资源删除。

混淆配置
-keep class com.ld.sdk.** { *; }
-keep class okhttp3.** { *; }
-keep class com.google.gson.** { *; }
-keep class okio.** { *; }
-keep class com.squareup.picasso.** { *; }
-keep class com.changzhi.net.** { *; }
-keep class io.netty.** { *; }
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

二、配置信息

<!--配置游戏渠道信息-->
<meta-data android:name="GAME_ID" android:value="10000"/>
<meta-data android:name="CHANNEL_ID" android:value="10001"/>
<meta-data android:name="SUN_CHANNEL_ID" android:value="10002"/>
注意:GAME_ID 如果和游戏有冲突,可改为LD_GAME_ID

三、接口说明

授权用户协议弹窗接口
String url = "第三方信息共享清单网页链接"; // 由接入方提供,可以传null,传null则不显示第三方共享清单
LdSdkManger.getInstance().checkUserEmpower(activity, url, new UserEmpowerCallback() {
    @Override
    public void callback(boolean isEmpower) {
         if (isEmpower) {
           // 初始化雷电SDK
         } else {
           // 退出游戏
         }
     }
});

1. 初始化接口
LdSdkManger.getInstance().init(MainActivity.this, "AppKey", new InitCallBack() {

          @Override
          public void onSuccess() {

          }

          @Override
          public void onFail(String desc) {
                 
          }
});

2. 登录账号接口
LdSdkManger.getInstance().showLoginView(this, new LoginCallBack() {

    @Override
    public void loginSuccess(String uid, String timestamp, String sign) {
         // 登录成功,sign为服务器请求参数usertoken
    }

    @Override
    public void loginFail(String desc) {
         // 登录失败,desc为描述
    }

    @Override
    public void loginLogout() {
         // 退出登录,需接入方处理返回到游戏登录界面
    }

    @Override
    public void accountCancellation() {
         // 当前功能未上线,不需要处理
    }

    @Override
    public void exitGame() {
         // 退出游戏,不用弹窗,直接关闭App进程
    }
});

3. 角色数据接口(角色创建和每次登录时候调用,第一次登录没有角色数据不用调用)
LdGameInfo ldGameInfo = new LdGameInfo();
ldGameInfo.serverId = "23";
ldGameInfo.serverName = "内测服"
ldGameInfo.roleId = "10086";
ldGameInfo.roleName = "张三";
ldGameInfo.roleType = "屠夫";
ldGameInfo.level = "99";
ldGameInfo.money = "10000000000000";
ldGameInfo.partyName = "公会";
ldGameInfo.vipLevel= 12;
ldGameInfo.powerNum= 9999;

LdSdkManger.getInstance().enterGame(Context, ldGameInfo, new EntryCallback() {
   @Override
   public void callback(int code, String desc) {
        // code==0为成功
   }
});

参数说明:


参数名中文描述类型是否必填
serverId服务器idString必填
serverName服务器名字String必填
roleId角色idString必填
roleName角色名字String必填
roleType角色类型,例如:战士,魔法师,弓箭手String(字符长度限制:20)可选(没有则填填默认值)
level角色等级String(字符长度限制:20)必填
money游戏的金币数String(字符长度限制:20)必填
partyName公会String可选(没有则填默认值)
vipLevelVIP等级int(字符长度限制:20)可选(没有则填默认值)
powerNum角色战斗力int(字符长度限制:11)可选(没有则填默认值)
4. 支付接口

参数说明:


参数名中文描述类型是否必填
orderId游戏的支付订单号String必填
amount支付金额(只接收整数,单位:分)String必填
productId默认值12String必填
productDesc商品描述String必填
productName商品名称String必填
roleId角色idString必填
roleName角色名字String必填
serverId服务器id(只接收Int类型的整数)String必填
serverName服务器名字String必填
LdPayInfo ldPayInfo = new LdPayInfo();
ldPayInfo.orderId = "12345";
ldPayInfo.amount = "100"; //传int类型整数,不支持浮点数
ldPayInfo.productId = "12";
ldPayInfo.productDesc = "充值金币";
ldPayInfo.productName = "金币";
ldPayInfo.roleId = "10086";
ldPayInfo.roleName = "张三";
ldPayInfo.serverId = "23";
ldPayInfo.serverName = "内测服";
LdSdkManger.getInstance().showChargeView(this, ldPayInfo, new PayCallback() {
    @Override    
    public void paySuccess(String uid, String billno, String timestamp) {        
    // 支付成功 uid :平台的用户ID   billno:订单号    
    }    @Override    public void payFail(String desc) {        
    // 支付失败,desc为失败描述    
    }    
    @Override    
    public void payCancel() {        
    // 用户取消支付    
    }});
5. 游戏退出接口(必须接入)
LdSdkManger.getInstance().showExitView(this, new ExitCallBack() {
 
   @Override
   public void onFinish(int code, String desc) {
      if (state == 0) {
           // code: 0.退出游戏;1.继续游戏;
      }
   }
});

6. 获取用户数据接口(登录成功后可获取)
LdUserInfo ldUserInfo = LdSdkManger.getInstance().getUserInfo();
 
uid:用户id
isAuthenticated:用户是否实名认证
realName:用户实名认证姓名
birthday:用户实名认证出生日期(格式:20190101)
isAdult:是否成年

7. 实名认证接口(SDK默认登录后会进行强制实名,该接口可按需求接入)
isForce;   是否强制实名,true该弹窗在实名认证成功前不可关闭
 
LdSdkManger.getInstance().verifyIdCard(boolean isForce , new VerifyIdCardListener() {
    @Override
    public void callback(int code, String birthday, boolean isAdult) {
        
    }
});
 
结果返回: 
code:   0.不可用; 1.成功; 2.验证中; 3.验证不通过;
birthday;   用户出生日期(19990909)
isAdult;   是否成年

8.查询VIP等级对应档位
LdSdkManger.getInstance().quickVipInfo(new VipInfoCallback() {
    @Override
    public void callback(String json) { // 返回json,方便后续扩展
        if (!json.equals("") && !json.equals("{}")) {
            // membershipLevel为档位信息
            结果返回: 正确示例:{"membershipLevel":1}
        }
    }
});


最近修改: 2025-06-16