public TrdUnlockTrade.Response UnlockTradeSync(String pwdMD5, bool isUnlock) { ReqInfo reqInfo = null; Object syncEvent = new Object(); lock (syncEvent) { lock (trdLock) { if (trdConnStatus != ConnStatus.READY) { return(null); } TrdUnlockTrade.C2S c2s = TrdUnlockTrade.C2S.CreateBuilder() .SetPwdMD5(pwdMD5) .SetUnlock(isUnlock) .Build(); TrdUnlockTrade.Request req = TrdUnlockTrade.Request.CreateBuilder().SetC2S(c2s).Build(); uint sn = trd.UnlockTrade(req); if (sn == 0) { return(null); } reqInfo = new ReqInfo(ProtoID.TrdUnlockTrade, syncEvent); trdReqInfoMap.Add(sn, reqInfo); } Monitor.Wait(syncEvent); return((TrdUnlockTrade.Response)reqInfo.Rsp); } }
public void OnReply_GetAccList(FTAPI_Conn client, int nSerialNo, TrdGetAccList.Response rsp) { Console.WriteLine("Recv GetAccList: {0} {1}", nSerialNo, rsp); if (rsp.RetType != (int)Common.RetType.RetType_Succeed) { Console.WriteLine("error code is {0}", rsp.RetMsg); } else { this.accID = rsp.S2C.AccListList[1].AccID; FTAPI_Trd trd = client as FTAPI_Trd; MD5 md5 = MD5.Create(); byte[] encryptionBytes = md5.ComputeHash(Encoding.UTF8.GetBytes("196910")); string unlockPwdMd5 = BitConverter.ToString(encryptionBytes).Replace("-", "").ToLower(); TrdUnlockTrade.Request req = TrdUnlockTrade.Request.CreateBuilder().SetC2S(TrdUnlockTrade.C2S.CreateBuilder().SetUnlock(true).SetPwdMD5(unlockPwdMd5)).Build(); uint serialNo = trd.UnlockTrade(req); Console.WriteLine("Send UnlockTrade: {0}", serialNo); } }
/*** * 解锁,具体字段请参考Trd_UnlockTrade.proto协议 * @param req * @return 请求的序列号 */ public uint UnlockTrade(TrdUnlockTrade.Request req) { return(SendProto((uint)ProtoID.TrdUnlockTrade, req)); }