private TransResult Unpack8583() { var ret = TransResult.E_RECV_FAIL; try { var RecvData = new byte[recvLen - headLen]; RecvData = UnpackHead(); byte[] len8583 = new byte[2]; Array.Copy(RecvData, len8583, 2); int lenthOf8583 = len8583[0] * 256 + len8583[1]; if (lenthOf8583 != 0) { var RecvBytes = new byte[RecvData.Length - headLen_8583]; //包体数据 Array.Copy(RecvData, headLen_8583, RecvBytes, 0, RecvData.Length - headLen_8583); var headBytes = new byte[headLen_8583]; Array.Copy(RecvData, headBytes, headLen_8583); //包头数据 //解包 ret = TransResult.E_UNPACKET_FAIL; FrontBytes = headBytes; HandleFrontBytes(headBytes); //根据报文头来判断是否要下载密钥 RecvPackage.ParseBuffer(RecvBytes, SendPackage.ExistValue(0)); var nRet = UnPackFix(); if (!mInvokeSetResult) { throw new Exception("should invoke SetRespInfo() in UnPackFix()"); } mInvokeSetResult = false; ret = nRet ? TransResult.E_SUCC : TransResult.E_HOST_FAIL; CLog.Info(RecvPackage.GetLogText()); } else { ret = TransResult.E_HOST_FAIL; } if (recvLen > headLen + lenthOf8583 + 2) { byte[] jsonByte = new byte[recvLen - headLen - lenthOf8583 - 2]; Array.Copy(RecvData, lenthOf8583 + 2, jsonByte, 0, jsonByte.Length); var strJson = Encoding.Default.GetString(jsonByte); RecvPackageJson = JsonConvert.DeserializeObject <CommunicateInfo>(strJson); } } catch (Exception ex) { Log.Error(GetType().Name, ex); } return(ret); }
private TransResult UnPackBankBag() { var ret = TransResult.E_UNPACKET_FAIL; bool bret = false; bool wret; //string key = "V9Zhy1tiOOoy/tDQHIlYFVfWYctbYjjq"; try { var RecvData = new byte[recvLen - headLen]; RecvData = UnpackHead(); byte[] bbaglen = new byte[4]; Array.Copy(RecvData, 0, bbaglen, 0, 4); int ibaglen = int.Parse(Encoding.GetEncoding("GBK").GetString(bbaglen).Replace("\0", "")); if (ibaglen != 0) { byte[] btemprecv = new byte[ibaglen]; Array.Copy(RecvData, 4, btemprecv, 0, ibaglen); string tempstr = Encoding.GetEncoding("GBK").GetString(btemprecv); byte[] recvdata = Convert.FromBase64String(tempstr); int nibaglen = (recvdata.Length % 8 == 0 ? recvdata.Length : recvdata.Length + 8 - recvdata.Length % 8); byte[] Bagdata = new byte[nibaglen]; Array.Copy(recvdata, Bagdata, nibaglen); byte[] bkey = Convert.FromBase64String(mainKey); byte[] bagrecvdata = Encrypt.DES3Decrypt(Bagdata, bkey); RecvBagData = Encoding.GetEncoding("GBK").GetString(bagrecvdata); Log.Info("Unpackdata:" + RecvBagData); bret = Unpackbagfix(); ret = bret ? TransResult.E_SUCC : TransResult.E_HOST_FAIL; } if (recvLen > headLen + ibaglen + 4) { wret = false; byte[] jsonByte = new byte[recvLen - headLen - ibaglen - 4]; Array.Copy(RecvData, ibaglen + 4, jsonByte, 0, jsonByte.Length); var strJson = Encoding.GetEncoding("GBK").GetString(jsonByte); Log.Info("strJson:" + strJson); RecvPackageJson = JsonConvert.DeserializeObject <CommunicateInfo>(strJson); wret = UnpackJsonfix(); ret = bret && wret ? TransResult.E_SUCC : TransResult.E_HOST_FAIL; } } catch (Exception ex) { ret = TransResult.E_UNPACKET_FAIL; Log.Error(GetType().Name, ex); } //Encrypt.DES3Decrypt(recvStr, keyStr); return(ret); }
private TransResult UnpackJson() { var ret = TransResult.E_UNPACKET_FAIL; try { var RecvData = new byte[recvLen - headLen]; RecvData = UnpackHead(); var strJson = Encoding.Default.GetString(RecvData); //string str = "{\"returnMessage\": \"Query Succeed/ QueryErrStr:数据查询错误…..\",\"rowCount\": \"10\",\"DS\": [{\"寄件日期\": \"2015-01-02\",\"目的地\": \" xxxxx \", \"收件人\": \"xxxxx\",\"运单号\": \" xxxxx xxxxxx\",\"运单号校验码\": \" xxxxx xxxxxx \",\"货号\": \"xxx-xx\",\"代收金额\" : \"20\",\"代扣运费\": \"130\", \"手续费\": \"10\",\"实际应付\": \"150\",\"实际应付校验码\": \"xxxxxxxx\",\"银行\" : \"xxxxx\",\"行卡号\": \"xxxxxxxx\",\"银行卡号校验码\": \"xxxxxx\",\"账户姓名\": \"xxxxxxx\"}]}"; CommunicateInfo recv = RecvPackageJson as CommunicateInfo; if (recv != null) { RecvPackageJson = JsonConvert.DeserializeObject <CommunicateInfo>(strJson); ret = TransResult.E_SUCC; } else { if (string.Compare(strJson, "00") == 0) { //确认返回成功 ret = TransResult.E_SUCC; } else { Log.Error("TransVerify Error msg:" + strJson); return(ret); } } Log.Debug("Unpack Json Succ!"); } catch (Exception ex) { Log.Error("Unpack Json Error!", ex); } return(ret); }
protected PFBankPay() { RecvPackageJson = new CommunicateInfo(); //ListPFWL = new List<WlInfo>(); }