# 其他接口

# 1、邮箱收集

# 1.1、创建回调对象

import org.json.JSONObject;

import com.dh.callback.IDHSDKCallback;

IDHSDKCallback sendEmailCallback = new IDHSDKCallback() {
    @Override
    public void onDHSDKResult(int requestCode, int resultCode, String resultData) {
        switch (requestCode) {
            case DHSDKConst.REQ_EXEC:
                if (resultCode == DHSDKConst.RET_OK) {
                    // 成功结果
                    try {
                        // {"methodName":"sendemail","data":"设置成功"}
                        JSONObject callback = new JSONObject(resultData);
                        switch (callback.optString("methodName")) {
                            case "sendemail": {   // 固定
                                Object data = callback.opt("data");
                            }
                        }
                     } catch (Throwable e) {
                         e.printStackTrace();
                     }
                } else if (resultCode == DHSDKConst.RET_FAIL) {
                    // 失败结果
                }
                break;
            default:
                // 其他结果
                break;
        }
    }
}

# 1.2、打开收集页面(研发不需要提供收集界面)

import com.dh.DHSDKHelper;

import org.json.JSONObject;

String params = "{}";
try {
    params = new JSONObject()
        .put("pluginName", "tools")              // 固定
        .put("pluginType", "platform")           // 固定
        .put("methodName", "sendemail")          // 固定
        .toString();
} catch (Throwable e) {
    e.printStackTrace();
}

DHSDKHelper.getInstance().exec(activity, params, sendEmailCallback);

# 1.3、上报邮箱信息(研发提供收集界面,前提已收集到用户邮箱)

import com.dh.DHSDKHelper;

import org.json.JSONObject;

String params = "{}";
try {
    params = new JSONObject()
        .put("pluginName", "tools")              // 固定
        .put("pluginType", "platform")           // 固定
        .put("methodName", "sendemail")          // 固定
        .put("methodParam", new JSONObject()
            .put("nickname", "昵称")              // 昵称
            .put("email", "玩家真实的邮箱")         // 电子邮箱
            .toString())
        .toString();
} catch (Throwable e) {
    e.printStackTrace();
}

DHSDKHelper.getInstance().exec(activity, params, sendEmailCallback);

# 2、关联手机号

WARNING

账号关联手机号码接口仅限中国大陆

# 2.1、查询绑定

新版接口:

import com.dh.DHSDKConst;
import com.dh.DHSDKHelper;
import com.dh.callback.IDHSDKCallback;

import org.json.JSONObject;

String params = "{}";
try {
    params = new JSONObject()
        .put("pluginName", "tools")              // 固定
        .put("pluginType", "platform")           // 固定
        .put("methodName", "bindUserPhone")      // 固定
        .put("methodEvent", "query")             // 固定
        .put("methodParam", new JSONObject()
            // .put("connect", "bind")           //(可选)绑定多端互通角色:默认不传该字段,只收集手机号
            .toString())
        .toString();
} catch (Throwable e) {
    e.printStackTrace();
}

/**
 * @param activity    上下文
 * @param params      接口参数
 * @param sdkCallback 回调对象
 */
DHSDKHelper.getInstance().exec(activity, params, new IDHSDKCallback() {
    @Override
    public void onDHSDKResult(int requestCode, int resultCode, String resultData) {
        switch (requestCode) {
            case 101:
                // 查询结果
                if (resultCode == DHSDKConst.RET_OK) {
                    // JSONObject result = new JSONObject(resultData);
                    // String state = result.getString("success"); // 1=已绑定,2=未绑定,其它失败
                } else if (resultCode == DHSDKConst.RET_FAIL) {
                    // 查询失败
                }
                break;
            default:
                // 其他结果
                break;
        }
    }
});

请求成功时,示例如下:

{"success":"2", "info":"没有绑定手机号码"}
{"success":"1", "info":"已绑定手机号码", "bindPhone":"131****0130"}
参数 类型 说明
info String 描述结果
success String 1=已绑定,2=未绑定,其它失败
bindPhone String 绑定的手机号,131****0130,已绑定时,有此字段

# 2.2、游戏自制界面

# 2.2.1、发送短信(需自制界面)

新版接口:

import com.dh.DHSDKConst;
import com.dh.DHSDKHelper;
import com.dh.callback.IDHSDKCallback;

import org.json.JSONObject;

String params = "{}";
try {
    params = new JSONObject()
        .put("pluginName", "tools")              // 固定
        .put("pluginType", "platform")           // 固定
        .put("methodName", "bindUserPhone")      // 固定
        .put("methodEvent", "send")              // 固定
        .put("methodParam", new JSONObject()
            .put("mobile", "手机号")              // 手机号
            // .put("connect", "bind")           //(可选)绑定多端互通角色:默认不传该字段,只收集手机号
            .toString())
        .toString();
} catch (Throwable e) {
    e.printStackTrace();
}

/**
 * @param activity    上下文
 * @param params      接口参数
 * @param sdkCallback 回调对象
 */
DHSDKHelper.getInstance().exec(activity, params, new IDHSDKCallback() {
    @Override
    public void onDHSDKResult(int requestCode, int resultCode, String resultData) {
        switch (requestCode) {
            case 102:
                // 发送结果
                if (resultCode == DHSDKConst.RET_OK) {
                    // JSONObject result = new JSONObject(resultData);
                    // String state = result.getString("success"); // 1=发送成功,2=发送失败,其它失败
                } else if (resultCode == DHSDKConst.RET_FAIL) {
                    // 发送失败
                }
                break;
            default:
                // 其他结果
                break;
        }
    }
});

请求成功时,示例

{"success":"1", "info":"发送成功"}
{"success":"2", "info":"发送失败"}
参数 类型 说明
info String 描述信息
success String 1=发送成功,2=发送失败,其它失败

# 2.2.2、绑定手机号码(需自制界面)

新版接口:

import com.dh.DHSDKConst;
import com.dh.DHSDKHelper;
import com.dh.callback.IDHSDKCallback;

import org.json.JSONObject;

String params = "{}";
try {
    params = new JSONObject()
        .put("pluginName", "tools")              // 固定
        .put("pluginType", "platform")           // 固定
        .put("methodName", "bindUserPhone")      // 固定
        .put("methodEvent", "bind")              // 固定
        .put("methodParam", new JSONObject()
            .put("code", "验证码")                // 验证码
            .put("mobile", "手机号")              // 手机号
            // .put("connect", "bind")           //(可选)绑定多端互通角色:默认不传该字段,只收集手机号
            .toString())
        .toString();
} catch (Throwable e) {
    e.printStackTrace();
}

/**
 * @param activity    上下文
 * @param params      接口参数
 * @param sdkCallback 回调对象
 */
DHSDKHelper.getInstance().exec(activity, params, new IDHSDKCallback() {
    @Override
    public void onDHSDKResult(int requestCode, int resultCode, String resultData) {
        switch (requestCode) {
            case 103:
                // 绑定结果
                if (resultCode == DHSDKConst.RET_OK) {
                    // JSONObject result = new JSONObject(resultData);
                    // String state = result.getString("success"); // 1=绑定成功,2=绑定失败,其它失败
                } else if (resultCode == DHSDKConst.RET_FAIL) {
                    // 绑定失败
                }
                break;
            default:
                // 其他结果
                break;
        }
    }
});

请求成功时,示例如下

{"success":"2", "info":"绑定失败"}
{"success":"1", "info":"绑定成功", "bindPhone":"131****0130"}
参数 类型 说明
info String 描述信息
success String 1=绑定成功,2=绑定失败,其它失败
bindPhone String 绑定的手机号,例如:131****0130
{"success":"2", "info":"绑定失败"}
{"success":"1", "info":"绑定成功", "bindPhone":"131****0130", "bindChange":"0","bindAccount":......}
{"success":"1", "info":"绑定成功", "bindPhone":"131****0130", "bindChange":"1","bindAccount":......}

绑定多端互通角色时有额外字段,游戏可以根据bindChange判断是否绑定后是新账号。

参数 类型 说明
bindChange String 绑定后是否新号,例如:1,新账号;0,未变动
bindAccount Object 绑定后账号信息,详细数据结构请参考登录接口

# 2.3、使用SDK统一界面

注意

委托使用SDK统一界面,仅包含输入手机号发送验证码、输入验证码绑定手机号,不含查询

# 2.3.1、委托发送、绑定(使用统一界面)

新版接口:

import com.dh.DHSDKConst;
import com.dh.DHSDKHelper;
import com.dh.callback.IDHSDKCallback;

import org.json.JSONObject;

String params = "{}";
try {
    params = new JSONObject()
        .put("pluginName", "tools")              // 固定
        .put("pluginType", "platform")           // 固定
        .put("methodName", "bindUserPhone")      // 固定
        .put("methodEvent", "delegate")          // 固定
        .put("methodParam", new JSONObject()
            // .put("connect", "bind")           //(可选)绑定多端互通角色:默认不传该字段,只收集手机号
            .toString())
        .toString();
} catch (Throwable e) {
    e.printStackTrace();
}

/**
 * @param activity    上下文
 * @param params      接口参数
 * @param sdkCallback 回调对象
 */
DHSDKHelper.getInstance().exec(activity, params, new IDHSDKCallback() {
    @Override
    public void onDHSDKResult(int requestCode, int resultCode, String resultData) {
        switch (requestCode) {
            case 103:
                // 绑定结果
                if (resultCode == DHSDKConst.RET_OK) {
                    // 绑定成功
                    // JSONObject result = new JSONObject(resultData);
                } else if (resultCode == DHSDKConst.RET_FAIL) {
                    // 绑定失败
                }
                break;
            default:
                // 其他结果
                break;
        }
    }
});

请求成功时,示例如下

{"success":"2", "info":"绑定失败"}
{"success":"1", "info":"绑定成功", "bindPhone":"131****0130"}
参数 类型 说明
info String 描述信息
success String 1=绑定成功,2=绑定失败,其它失败
bindPhone String 绑定的手机号,例如:131****0130

绑定多端互通角色时有额外字段,请参考绑定手机号码接口。

参数 类型 说明
bindChange String 绑定后是否新号,例如:1,新账号;0,未变动
bindAccount Object 绑定后账号信息,详细数据结构请参考登录接口

# 6、MTR网络检测

注意

玩家无法连接服务时可调用该接口,正常游戏千万不能调用,否则会带来卡顿。 调用接口之前,游戏最好自定义弹窗提示收集玩家网络信息,可能带来卡顿。玩家同意后再调用

import com.dh.DHSDKConst;
import com.dh.DHSDKHelper;
import com.dh.callback.IDHSDKCallback;

import org.json.JSONObject;

String params = "{}";
try {
    params = new JSONObject()
        .put("pluginName", "tools")              // 固定
        .put("pluginType", "platform")           // 固定
        .put("methodName", "mtr")                // 固定
        .put("methodParam", new JSONObject()
            .put("appId", "")                   // appId
            .put("areaId", "")                  // 大区ID
            .put("roleId", "1")                 // 角色ID
            .put("host", "www.krait.cn")         // 服务器域名 例如 www.krait.cn,禁止带https或接口路径
            .toString())
        .toString();
} catch (Throwable e) {
    e.printStackTrace();
}

/**
 * @param activity    上下文
 * @param params      接口参数
 * @param sdkCallback 回调对象
 */
DHSDKHelper.getInstance().exec(activity, params, new IDHSDKCallback() {
    @Override
    public void onDHSDKResult(int requestCode, int resultCode, String resultData) {
        // 无回调
    }
});
Last Updated: 2024/8/22 14:41:50