/// <summary> /// 进行验证 /// </summary> /// <param name="url">请求路劲</param> /// <returns></returns> public static bool Inspect(string url) { string path = AppDomain.CurrentDomain.BaseDirectory; IDictionary <string, string> param = new Dictionary <string, string>(); string[] dirName = path.Split('\\'); param.Add("version", dirName[dirName.Length - 2]); Result source = JsonConvert.DeserializeObject <Result>(HttpHelper.getHttp(url, param, Encoding.UTF8)); if (source.data == null)//当数据为null时说明无需验证直接通过 { return(true); } List <Dictionary <string, string> > result = GetDifferentData(source, path); if (result.Count == 0)//验证结束后未通过个数为0时验证成功 { return(true); } else//验证失败时,报告后台并且将验证失败的文件名发送至后台 { string msg = "验证失败文件名:"; foreach (Dictionary <string, string> dic in result) { msg += dic["name"] + "、"; } DeviceState.SendState("100000", msg); } return(false); }
public static Dictionary <string, string> pay(WintopPayParam param, string secondShopNo) { try { Dictionary <string, string> map = new Dictionary <string, string>(); Dictionary <int, string> data = new Dictionary <int, string>(); data.Add(2, param.wintopNo); //万通卡号 data.Add(3, "000000"); data.Add(4, wtPayUtils.ConvertMoney(param.price)); //交易金额 data.Add(11, param.orderNo); //POS终端交易流水 map.Add("11", data[11]); data.Add(25, "00"); data.Add(41, SysConfigHelper.readerNode("ClientNo"));//终端代码 map.Add("41", data[41]); data.Add(42, SysConfigHelper.readerNode("ShopNo")); //商户代码 data.Add(48, "TC_ONE|Y00000001|" + secondShopNo); //data.Add(48, "TC_ONE|Y00000001|"+secondShopNo); //data.Add(48, "Y00000001"); data.Add(49, "156"); data.Add(62, param.pwd);//明文,卡号 data.Add(63, "01"); byte[] countMacData = EncryptWT.countMacData("0200", EncryptWT.encryptLKL(data, null)); byte[] mac = PasswordBLL.GetMac(2, countMacData); byte[] sendData = EncryptWT.EncryptData("0200", "6000000000", EncryptWT.encryptLKL(data, mac)); //发送的数据 string sendStr = BCDUtil.byteArrToString(sendData); log.Write("发送支付的数据:" + sendStr); //Console.WriteLine(); //Console.WriteLine(BCDUtil.byteArrToString(sendData)); AnalysisBaseWT lk = new AnalysisBaseWT(); byte[] result = Client(LakalaIp, LakalaPort, sendData); //接收的数据 string receiveStr = BCDUtil.byteArrToString(result); log.Write("接收支付的数据:" + receiveStr); Dictionary <string, ResultData> ret = lk.analysis(result); string recode = Wanton.handleDataMac(ret); //发送数据 log.Write("支付返回码:" + recode); if ("00".Equals(recode)) { } else if ("A0".Equals(recode)) { DeviceState.SendState("333333"); } else { } map.Add("recode", recode); map.Add("sendStr", sendStr); map.Add("receiveStr", receiveStr); map.Add("ShopNo", param.orderNo + "|" + data[41] + "|" + data[42]); map.Add("money", param.price); if (ret.ContainsKey("2")) { map.Add("2", ret["2"].value); } map.Add("4", param.price); if (ret.ContainsKey("59")) { map.Add("59", ret["59"].value); map.Add("cloudOrderNo", ret["59"].value); } string serialStr = JsonConvert.SerializeObject(map); return(map); } catch (WtException e) { throw e; } catch (Exception e) { throw new WtException(WtExceptionCode.Bus.WT_PAY, e.Message); } }