public Wallet(BankInterface bank, MoneyPrinterInterface moneyPrinter) { this.bank = bank; this.moneyPrinter = moneyPrinter; slots = new List <WalletSlot>(); }
public int requestorder(string item, int quantity, double totalprice, string accountid) { int result = 0; //if -1 : not approved //if 0 : account not found (either no account on the store or n CustomerAccountIndividual costumer = CostList.ReadAccountInfo(accountid); if (costumer != null) //costumer found { result = BankInterface.authorize(costumer.getCardNo(), out uint authorizationNo); if (result == 1) //approved { DeliverOrderTable.createOrder(item, quantity, totalprice, accountid, authorizationNo); this.CustEmail = costumer.getCustEmail(); Email.emailConfirmation(this.CustEmail); } } else { Console.WriteLine("Costumer was not found. Try again."); Console.WriteLine(); } return(result); //if -1 : not approved //if 0 : not found //if 1 : not approved } //end of requestorder
//直接发送测试 private void btnSend_Click(object sender, EventArgs e) { string strMessage = r1.Text.Trim(); new Thread(p => { BankInterface bank = new BankInterface(); string strResult = bank.SendMessage(strMessage); }).Start(); }
/// <summary> /// 处理消息 /// </summary> /// <param name="recv">接收到的数据</param> /// <param name="ns">网络流对象</param> private void HandleMessage(string recv, NetworkStream ns) { //给银行的应答数据 string back = string.Empty, TargetSystem = "", ExMessage = string.Empty; //解析的值 ExHashTable retKeyDict = new ExHashTable(); try { if (!string.IsNullOrEmpty(recv)) { //解析接收到的银行的数据 BankInterface bankReq = new BankInterface(); TargetSystem = Utils.GetTargetSystem(recv); if (TargetSystem == "03") { //老版本 交易资金03 retKeyDict = bankReq.ParsingTranMessageString(recv); back = bankReq.GetTranMessageRes(retKeyDict); } else if (TargetSystem == "01") { //新版本 银企直连01 retKeyDict = bankReq.ParsingBankEnterpriseMessageString(recv); //构建返回数据给银行 back = string.Join("", bankReq.GetBankEnterpriseMessageRes(retKeyDict).ToArray()); } } byte[] BackBytes = Utils.ToByte(back); ns.Write(BackBytes, 0, BackBytes.Length); ns.Flush(); ns.Close(); } catch (Exception ex) { ExMessage = ex.Message; throw ex; } finally { StringBuilder sbLog = new StringBuilder(); sbLog.AppendFormat("时间:{0}\r\n", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); sbLog.AppendFormat("接收数据:{0}\r\n", recv); sbLog.AppendFormat("响应数据:{0}\r\n", back); if (!string.IsNullOrEmpty(ExMessage)) { sbLog.AppendFormat("异常信息:{0}\r\n", ExMessage); } sbLog.AppendFormat("解析结果:\r\n{0}\r\n\r\n\r\n", retKeyDict.ToString()); if (GlobalData.LoadPinganConfig().OpenLog) { FileHelper.SaveFile(string.Format("Log\\Recv\\{0}{1}\\bankRecv_{2}.txt", (!string.IsNullOrEmpty(TargetSystem) ? (TargetSystem + "\\") : ""), System.DateTime.Now.ToString("yyyyMMdd"), System.DateTime.Now.ToString("HH")), sbLog.ToString()); } } }
public BANKGUI() { TcpChannel tcpChannel = new TcpChannel(); ChannelServices.RegisterChannel(tcpChannel); Type requiredType = typeof(BankInterface); try { b = (BankInterface)Activator.GetObject(requiredType, "tcp://localhost:9998/MyBank"); Console.WriteLine("Connected:"); } catch (Exception e3) { Console.WriteLine("error:" + e3.ToString()); } InitializeComponent(); count = b.readCustomerCount(); index = 0; Console.WriteLine("Here1={0}", count); display(0); }
/// <summary> /// 根据请求参数 返回结果 /// </summary> /// <param name="parmaKeyDict"></param> /// <returns></returns> private DataResult GetResult(ExHashTable parmaKeyDict) { //记录日志 StringBuilder sbLog = new StringBuilder(); ExHashTable retKeyDict = new ExHashTable(); try { //检测 Utils.PayCheckData((string)parmaKeyDict.Get("ThirdLogNo"), (string)parmaKeyDict.Get("CounterId")); //获取请求报文 BankInterface msg = new BankInterface(); //调用函数生成请求的而完整报文 List <string> messageList = msg.GetBankEnterpriseMessageReq(parmaKeyDict, this.IsSpecialLine); var pinganPayConfig = GlobalData.LoadPinganConfig(); string reqMessage = string.Join("", (pinganPayConfig.BankEnterpriseNetHead.NetMessageHead.TeleProtocol == "01" ? messageList.ToArray() : messageList.GetRange(1, 2).ToArray())); sbLog.AppendFormat("时间:{0}\r\n", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); sbLog.AppendFormat("请求:{0}\r\n", reqMessage); //发送请求报文 //获取银行返回报文 string recvMessage = msg.SendMessage(reqMessage, pinganPayConfig.BankEnterpriseNetHead.NetMessageHead.TeleProtocol); sbLog.AppendFormat("响应:{0}\r\n", recvMessage); //解析返回结果 retKeyDict = msg.ParsingBankEnterpriseMessageString(recvMessage); sbLog.AppendFormat("解析结果:\r\n{0}\r\n", retKeyDict.ToString()); } catch (Exception ex) { sbLog.AppendFormat("异常信息:{0}\r\n", ex.Message); throw ex; } finally { //写入日志 if (GlobalData.LoadPinganConfig().OpenLog) { FileHelper.SaveFile(string.Format("Log\\Req\\ReqData_{0}.txt", System.DateTime.Now.ToString("yyyyMMdd")), sbLog.ToString() + "\r\n\r\n"); } } //转换 return(Utils.ToDataResult(retKeyDict, GlobalData.DirectErpBankVersion)); }
/// <summary> /// 根据请求参数 返回结果 /// </summary> /// <param name="parmaKeyDict"></param> /// <returns></returns> private DataResult GetResult(ExHashTable parmaKeyDict) { //记录日志 StringBuilder sbLog = new StringBuilder(); ExHashTable retKeyDict = new ExHashTable(); try { //检测 Utils.PayCheckData((string)parmaKeyDict.Get("ThirdLogNo"), (string)parmaKeyDict.Get("CounterId")); //获取请求报文 BankInterface msg = new BankInterface(); //调用函数生成请求的而完整报文 string reqMessage = msg.GetTranMessageReq(parmaKeyDict, this.IsSpecialLine); sbLog.AppendFormat("时间:{0}\r\n", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); sbLog.AppendFormat("请求:{0}\r\n", reqMessage); //发送请求报文 //获取银行返回报文 string recvMessage = msg.SendMessage(reqMessage); sbLog.AppendFormat("响应:{0}\r\n", recvMessage); //解析返回结果 retKeyDict = msg.ParsingTranMessageString(recvMessage); sbLog.AppendFormat("解析结果:\r\n{0}\r\n", retKeyDict.ToString()); } catch (Exception ex) { sbLog.AppendFormat("异常信息:{0}\r\n", ex.Message); throw ex; } finally { //写入日志 if (GlobalData.LoadPinganConfig().OpenLog) { FileHelper.SaveFile(string.Format("Log\\Req\\ReqData_{0}.txt", System.DateTime.Now.ToString("yyyyMMdd")), sbLog.ToString() + "\r\n\r\n"); } } //转换 return(Utils.ToDataResult(retKeyDict, GlobalData.B2BSpotVersion)); }
public void MyMainMethod() { //设置银行客户端端地址和端口 //string ServerIPAddress = "127.0.0.1"; //int ServerPort = 7072;//默认端口 //定义报文参数字典 ExHashTable parmaKeyDict = new ExHashTable(); //用于存放生成请求报文的参数 ExHashTable retKeyDict = new ExHashTable(); //用于存放 /** * 第一部分:生成发送银行的请求的报文的实例 * */ //生成随机数: 当前精确到秒的时间再加6位的数字随机序列 string rdNum = System.DateTime.Now.ToString("yyyyMMddHHmmss");//设置日期格式 Random random = new Random(); int ird = random.Next(0, 999999); string srd = ird.ToString().PadLeft(6, '0'); string thirdLogNo = rdNum + srd; //报文参数赋值 parmaKeyDict.Add("TranFunc", "1330"); //交易码,此处以【1320】接口为例子 1330 parmaKeyDict.Add("Qydm", "00102079900001231000"); //8545 parmaKeyDict.Add("ThirdLogNo", thirdLogNo); //请求流水号,特别重要 parmaKeyDict.Add("FuncFlag", "1"); //1:签到 2:签退 parmaKeyDict.Add("TxDate", "20151125"); parmaKeyDict.Add("Reserve", "保留域"); //获取请求报文 BankInterface msg = new BankInterface(); string tranMessage = msg.GetTranMessageReq(parmaKeyDict);//调用函数生成报文 //输出报文结果 Console.Write("[输出报文结果]:" + tranMessage); // FileHelper.SaveFile("out.txt", tranMessage + "\r\n"); /** * 第二部分:获取银行返回的报文的实例 * */ //发送请求报文 //获取银行返回报文 string recvMessage = msg.SendMessage(tranMessage); //输出报文结果 Console.Write("第二部分:获取银行返回的报文"); Console.Write(recvMessage); Console.Write("-------------------------------"); /** * 第三部分:解析银行返回的报文的实例 * */ retKeyDict = msg.ParsingTranMessageString(recvMessage); string rspCode = (string)retKeyDict.Get("RspCode"); //银行返回的应答码 string rspMsg = (string)retKeyDict.Get("RspMsg"); //银行返回的应答描述 string bodyMsg = (string)retKeyDict.Get("BodyMsg"); string frontLogNo = (string)retKeyDict.Get("FrontLogNo"); //银行返回的前置流水号 //输出报文结果 Console.Write("第三部分:解析银行返回的报文"); Console.Write("返回应答码:"); Console.Write(rspCode); Console.Write("返回应答码描述:"); Console.Write(rspMsg); Console.Write("返回报文体:"); Console.Write(bodyMsg); Console.Write("返回前置流水号:"); Console.Write(frontLogNo); Console.Write("-------------------------------"); Console.ReadLine(); }
public void MyTestLength() { //string aa = "A001010101001010799000099990000000000220S001 00000022016071111591820160711115918747160000000:交易受理成功 00000 0"; //int aaa = Encoding.Default.GetBytes(aa).Length; //string bb="1&11014165191000&888800000016258&上海新跃物流会员一&V00000027&52&20130802-7&1&0.00&0.00&0.00&&"; //int cc = Encoding.GetEncoding("GBK").GetBytes(bb).Length+122; //string yewu = "1330020 20160714145704ERR087不能重复签到 000000016PA001201607141459313678458545"; //int len = Encoding.GetEncoding("GBK").GetBytes(yewu).Length; //string str = ":交易受理成功 "; //int b = str.Length; //decimal a = 10m; //decimal a = 10.0m; //decimal a = 10.01m; //decimal a = 10.21m; //decimal a = 10.217m; //string astr = Utils.DecimalToString(a); //return; //QiyeLargeBatchMoneyTransfer qiyeLargeBatchMoneyTransfer = new QiyeLargeBatchMoneyTransfer(); //qiyeLargeBatchMoneyTransfer.CcyCode = "RMB"; //HOResultSet4018R hOResultSet4018R = new HOResultSet4018R(); //qiyeLargeBatchMoneyTransfer.HOResultSet4018R.Add(hOResultSet4018R); //hOResultSet4018R.AddrFlag = 2; //string xml = Utils.ModelToXMLNode<QiyeLargeBatchMoneyTransfer>(qiyeLargeBatchMoneyTransfer); //string recvData = "A0010301018529 000000013800000053120022016071410535720160714105605060612ERR087不能重复签到 000001 000000000001330020 20160714105357ERR087不能重复签到 0000000165312020160714105605060612852916071410667468&&"; //BankInterface bank = new BankInterface(); //var result = bank.ParsingTranMessageString(recvData); //string resData = "A0010301018545 0000000138000000PA001022016071416090720160714161135654063ERR087不能重复签到 000001 000000000001330020 20160714160907ERR087不能重复签到 000000016PA00120160714161135654063854516071410668865&&"; //var res = Utils.ToModelFromString<Res_1330>(resData); //string strReq = "130101 20160803151726999999 000000083EB00116080310773878 88771&11014971070008&888800000174252&测试一&02142081007&52&757601035&1&0.00&0.00&0.00&&"; //byte[] bb1 = Utils.ToByte(strReq); //byte[] bb2 = Utils.ToByteUTF8(strReq); //int blength = bb1.Length; ////int bblength = bb2.Length; //var nn = IDType.中国护照.ToValue(); //string strData = "A0010301018877 0000000205000000EB001012016080315172616080310773878 999999 00000000000000000000000000000130101 20160803151726999999 000000083EB00116080310773878 88771&11014971070008&888800000174252&测试一&02142081007&52&757601035&1&0.00&0.00&0.00&&"; BankInterface bankReq = new BankInterface(); //ExHashTable retKeyDict = bankReq.ParsingTranMessageString(strData); //string back = bankReq.GetTranMessageRes(retKeyDict); //string recv = "A0010301018877 000000020700000099999012016080414074916080715018669 999999 000000000000000000000000000001310010 20160804140749999999 0000000859999916080715018669 887711014971070008&888800000174433&100.00&11014890513006&测试一&RMB&20160807&02142081007&"; ////老版本 交易资金03 //var retKeyDict = bankReq.ParsingTranMessageString(recv); ////暂时写死 //retKeyDict.Set("RspCode", "000000"); //retKeyDict.Set("RspMsg", ""); //string back = bankReq.GetTranMessageRes(retKeyDict); //string recv1 = "A0010301018877 000000020800000099999012016080509494816080815033215 999999 000000000000000000000000000001310010 20160805094948999999 0000000869999916080815033215 887711014971070008&888800000174433&1000.00&11014890513006&测试一&RMB&20160808&02142081007&"; //ExHashTable retKeyDict = bankReq.ParsingTranMessageString(recv1); //string back = bankReq.GetTranMessageRes(retKeyDict); Console.ReadLine(); }