void Application.toAdmin(QuickFix.Message message, SessionID sessionID) { if (message is QuickFix42.Logon) { StringBuilder encryptPwd = new StringBuilder(128); switch (this.encryptType) { case 0: encryptPwd.Insert(0, this.passwrod); break; case 2: case 101: gsEncrypt(this.encryptType, this.passwrod, "GSFIXGW", encryptPwd, 128); break; } // 调用加密函数 message.setString(96, "Z:" + this.fundID + ":" + encryptPwd.ToString() + ":"); message.setInt(98, this.encryptType); } //Console.WriteLine("to admin:"+message.ToString()); }
/** * Callback chamado logo antes do envio da mensagem FIX de controle de sessão. * */ public void toAdmin(QuickFix.Message message, SessionID sessionId) { try { // Se for mensagem de Logon, inclui o RawData e RawDataLength na mensagem if (message.getHeader().getString(MsgType.FIELD).Equals("A")) { message.setBoolean(ResetSeqNumFlag.FIELD, true); message.setInt(NextExpectedMsgSeqNum.FIELD, (new NextExpectedMsgSeqNum(ConstantesMDS.BMF_SEQNUM_INICIAL)).getValue()); message.setField(RawData.FIELD, new RawData(senha).ToString()); message.setField(RawDataLength.FIELD, new RawDataLength(senha.Length).ToString()); if (novaSenha != null && novaSenha.Length > 0) { message.setField(NewPassword.FIELD, new NewPassword(novaSenha).ToString()); logger.Info("Enviada nova senha para alteracao!"); } } else if (message.getHeader().getString(MsgType.FIELD).Equals("5")) { if (assinados) { cancelaInstrumentos(); } } logger.Debug("SEND(SES) --> " + message.ToString()); } catch (FieldNotFound e) { logger.Error("Campo nao encontrado: " + e.Message, e); } }