# 其他接口
# 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) {
// 无回调
}
});