接口地址
open.operator.user.login
接口说明
该接口由接入方实现供Mega服务调用
请求参数
Loading table...
响应参数
Loading table...
错误码 errorCode定义:
2218:用户名或密码错误,登录失败.
2270:厅主状态变化,不允许登录
2214:当前用户已注销,登录失败
2215:当前用户已被封停,登录失败.请与客服联系.
2217:帐号已被禁用,请联系客服.
2632:访问太频繁,请稍后重试
37153:您已经有一个额度转换操作在执行,请稍后重试
21116:区域限制
2220:密码错误次数已达上限,系统限制您30分钟后登
21110:玩家帐号不合法
21101:玩家帐号错误
21102:玩家帐号不存在
21003:登录太频繁,请稍候重试
37197:API客户信息不存在
37203:API客户被禁用
37199:转账失败-代理商余额不足
代码示例
@WebMethod("open.operator.user.login")
public void login() {
RequestContext rc = RequestContext.holder.get();
ParamUtil pu = ParamUtil.wrap(rc.params());
String random = pu.getNotNullStr("random");
String digest = pu.getNotNullStr("digest");
String sn = pu.getNotNullStr("sn");
String loginId = pu.getNotNullStr("loginId");
String password = pu.getNotNullStr("password");
String secretCode = PropertyUtil.get("mega.open.user.login."+sn);
String getDigest = HashUtil.md5Hex(random + sn + loginId + secretCode);
if (!digest.equals(getDigest)) {
Map<String, Object> rtv = new HashMap<String, Object>();
rtv.put("success", 0);
rtv.put("errorCode", "37197");
rc.setResult(rtv);
return;
}
String salt = SeqUUIDUtil.toSequenceUUID();
String saltedPassword = HashUtil.sha1Base64(password)+ salt;
String loginIp = pu.getStr("clientIp", rc.getFromIp());
String saltedPasswordf = HashUtil.sha1Base64(saltedPassword);
rc.params().put("sn", sn);
rc.params().put("loginIp", loginIp);
rc.params().put("saltedPassword", saltedPasswordf);
rc.params().put("salt", salt);
rc.params().put("loginId", loginId);
rc.params().put("api_from", "megaapi");
rc.params().put("terminal", 14);
Map<String, Object> rtv = null;
try {
rtv = fac.getRpc().login(rc.params());
rtv.put("success", 1);
} catch (LogicError e) {
rtv = new HashMap<String, Object>();
rtv.put("success", 0);
rtv.put("errorCode", e.getCode());
rc.setResult(rtv);
return;
}
rc.setResult(rtv);
}
Response示例
{
"id": "1deaf133-c579-400a-a3c2-e54123adb9ca",
"result": {
"success": "1",
"sessionId": "ld0073020ABA1604AE63AC28A2F28B05",
"msg": "登录成功"
},
"error": null,
"jsonrpc": "2.0"
}
会员登录demo注意点
