private void doCheckVerify(AbstractActionFuture future) { LoginModule login = (LoginModule)getContext().getModule(AbstractModule.Type.LOGIN); QQAccount account = (QQAccount)getContext().getAccount(); login.checkVerify(account.getUsername(), delegate(QQActionEvent evt) { if (evt.getType() == QQActionEvent.Type.EVT_OK) { CheckVerifyArgs args = (CheckVerifyArgs)(evt.getTarget()); account.setUin(args.uin); if (args.result == 0) { doWebLogin(args.code, future); } else { doGetVerify("为了保证您账号的安全,请输入验证码中字符继续登录。", future); } } else if (evt.getType() == QQActionEvent.Type.EVT_ERROR) { future.notifyActionEvent( QQActionEvent.Type.EVT_ERROR, evt.getTarget()); } }); }
public override void OnHttpStatusOK(QQHttpResponse response) { var rex = new Regex(QQConstants.REGXP_CHECK_VERIFY); var m = rex.Match(response.GetResponseString()); if (m.Success) { var qqHex = m.Groups[3].Value; qqHex = Regex.Replace(qqHex, "\\\\x", ""); var args = new CheckVerifyArgs { Result = int.Parse(m.Groups[1].Value), Code = m.Groups[2].Value, Uin = long.Parse(qqHex, NumberStyles.HexNumber) }; NotifyActionEvent(QQActionEventType.EvtOK, args); } else { NotifyActionEvent(QQActionEventType.EvtError, QQErrorCode.UnexpectedResponse); } }