Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
            }
        }