public static tools.AnalyzeJson getJson(MakeJson json, string urlKey)
        {
            try
            {
                string error = null;
                error = login();
                if (error != null)
                {
                    return(new tools.AnalyzeJson(error, false));
                }
                if (urlKey != "checkUpdate" && urlKey != "downloadVersion")
                {
                    json.add("deviceid", GetMacAddress(), DataStyle.STR);
                    json.add("channelcode", channelcode, DataStyle.STR);
                    json.add("tokenid", token, DataStyle.STR);
                    json.add("equipmentNo", GetMacAddress(), DataStyle.STR);
                }

                string inJson = json.ToString();

                tools.AnalyzeJson aj = getJson_private(inJson, urlKey, out error);
                error = getError(aj, error);
                if (error != null)
                {
                    aj.error = error;
                }
                return(aj);
            }
            catch (Exception e)
            {
                return(new tools.AnalyzeJson(e.ToString(), false));
            }
        }
        public static string login()
        {
            if (channelcodeMD5 == null)
            {
                channelcodeMD5 = MD5.GetMD5String(channelcode);
            }
            MakeJson mj = new MakeJson();

            mj.add("channelcode", channelcode, DataStyle.STR);
            mj.add("username", channelcodeMD5, DataStyle.STR);
            mj.add("password", channelcodeMD5, DataStyle.STR);
            string inJson     = mj.ToString();
            string loginError = null;

            tools.AnalyzeJson aj = getJson_private(inJson, "Login", out loginError);
            if (loginError != null)
            {
                return(loginError);
            }
            if (aj["statusCode"].ToString() != "200")
            {
                return("登录失败");
            }
            else
            {
                token = aj["data"].ToString();
                return(null);
            }
        }
        public static void test_lingka()
        {
            MakeJson mj1    = new MakeJson();
            string   error1 = null;

            tools.AnalyzeJson device = Network3.getJson(mj1, "deviceLogin", out error1);

            MakeJson mj = new MakeJson();

            mj.add("sfzh", "44178994455745255", DataStyle.STR);
            mj.add("xm", "李三", DataStyle.STR);
            string error = null;

            tools.AnalyzeJson aj = Network3.getJson(mj, "getCPCardInfo", out error);

            int index = 0;
            //固定部分
            MakeJson mj2 = new MakeJson();

            mj2.add("orgCode", device["data"]["orgCode"], DataStyle.STR);
            mj2.add("devSeq", device["data"]["devSeq"], DataStyle.STR);
            mj2.add("sfzh", aj["data"]["data"][index]["sfzh"], DataStyle.STR);
            mj2.add("xm", aj["data"]["data"][index]["xm"], DataStyle.STR);
            mj2.add("cardId", int.Parse(aj["data"]["data"][index]["cardId"].ToString()), DataStyle.INT);
            mj2.add("orgId", device["data"]["orgId"], DataStyle.STR);
            mj2.add("applytype", "0", DataStyle.STR);
            mj2.add("status", "1", DataStyle.STR);
            mj2.add("description", "成功", DataStyle.STR);

            string error2 = null;

            tools.AnalyzeJson aj2 = Network3.getJson(mj2, "uploadFKRecord", out error2);
        }
Beispiel #4
0
        string serialNumber = "";//流水号
        //合并签名信息回盘
        async private void sign(string pic)
        {
            Loading.show1("正在保存签名信息...");
            tools.AnalyzeJson aj3 = null;
            await TaskMore.Run(new Action(() =>
            {
                mj3.add("receipt", pic, DataStyle.STR);
                Log("send:" + mj3.ToString());
                aj3 = Network3.getJson(mj3, "getBackData");
                if (aj3.error != null)
                {
                    if (MS2.PutCardToReject() != null)
                    {
                        aj3.error += "-卡回收失败";
                    }
                }
                else
                {
                    serialNumber = aj3["data"].ToString();
                }
            })).ConfigureAwait(true);

            if (aj3.error != null)
            {
                ShowTip.show(false, BackExit.Exit, aj3.error);
            }
            else
            {
                manageCheck();
            }
        }
        public static tools.AnalyzeJson getJson(MakeJson json, string urlKey, out string error)
        {
            error = login();
            if (error != null)
            {
                return(null);
            }
            if (urlKey != "checkUpdate" && urlKey != "downloadVersion")
            {
                json.add("deviceid", GetMacAddress(), DataStyle.STR);
                json.add("channelcode", channelcode, DataStyle.STR);
                json.add("tokenid", token, DataStyle.STR);
                json.add("equipmentNo", GetMacAddress(), DataStyle.STR);
            }

            string inJson = json.ToString();

            tools.AnalyzeJson aj = getJson_private(inJson, urlKey, out error);
            if (error == null)
            {
                return(aj);
            }
            else
            {
                return(null);
            }
        }
        async private void search_Click(object sender, RoutedEventArgs e)
        {
            if (isLoading)
            {
                return;
            }
            isLoading     = true;
            sp.Visibility = Visibility.Visible;
            string name      = "";
            string persionid = "";

            if (SelectCard.isSelectIDCard)
            {
                name      = ReadIDCar.name;
                persionid = ReadIDCar.persionid;
            }
            else
            {
                name      = B_ReadSSCard.name;
                persionid = B_ReadSSCard.persionid;
            }
            string timeTag = CD.timeTag.updateTag();

            tools.AnalyzeJson retJson1 = null;
            tools.AnalyzeJson retJson2 = null;
            string[]          timeMsg  = time.getTime().Split('-');
            int year  = int.Parse(timeMsg[0]);
            int month = int.Parse(timeMsg[1]);
            await TaskMore.Run(new Action(() => {
                retJson1 = getBalance(persionid, name);
                if (retJson1.error == null)
                {
                    retJson2 = getList(persionid, name);
                }
            })).ConfigureAwait(true);

            isLoading = false;
            if (CD.timeTag.equal(timeTag) == false)
            {
                return;
            }
            sp.Visibility = Visibility.Hidden;
            if (retJson1.error != null)
            {
                ShowTip.show(false, null, retJson1.error);
            }
            else if (retJson2.error != null)
            {
                ShowTip.show(false, null, retJson2.error);
            }
            else
            {
                CD.business2.setBusinessValue(this);
                string balance = retJson1["data"]["balance"].ToString();
                this.balance.Text = balance;
                setList(retJson2);
            }
        }
        //2.加载数据
        async private void LoadData()
        {
            string name      = "";
            string persionid = "";

            if (SelectCard.isSelectIDCard)
            {
                name      = ReadIDCar.name;
                persionid = ReadIDCar.persionid;
            }
            else
            {
                name      = B_ReadSSCard.name;
                persionid = B_ReadSSCard.persionid;
            }


            BackExit.setBack(LoadData);
            Business2.Init("医保账户查询");

            Loading.show2("正在查询,请稍候...");
            tools.AnalyzeJson retJson1 = null;
            tools.AnalyzeJson retJson2 = null;
            await TaskMore.Run(new Action(() => {
                retJson1 = getBalance(persionid, name);
                if (retJson1.error == null)
                {
                    retJson2 = getList(persionid, name);
                }
            })).ConfigureAwait(true);

            if (retJson1.error != null)
            {
                ShowTip.show(false, BackExit.Exit, retJson1.error);
            }
            else if (retJson2.error != null)
            {
                ShowTip.show(false, BackExit.Exit, retJson2.error);
            }
            else
            {
                CD.business2.setBusinessValue(this);
                time.reset(true, false);
                string balance = retJson1["data"]["balance"].ToString();
                this.balance.Text = balance;
                setList(retJson2);
            }
        }
Beispiel #8
0
        async private void handlePersionData()
        {
            Log(ReadIDCar.pOutInfo.ToString());
            updateTitle();
            CD.business1.hidenBackAndExitBtn();
            CD.business1.stop();
            Loading.show1("正在挂失");
            List <Dictionary <string, string> > zkData = null;
            string error = null;
            await TaskMore.Run(new Action(() =>
            {
                int box = int.Parse(Config.dic("yzkBoxs"));
                int ret = MS2.getLetfCardNum(box, out error);
                if (error == null && ret == 0)
                {
                    error = "预制卡已用完,请联系管理员加卡";
                }
                else if (error == null && ret == -1)
                {
                    error = "料盒状态异常,请联系管理员处理!";
                }
                if (error != null)
                {
                    return;
                }
                MakeJson mj = new MakeJson();
                deviceMsg = Network3.getJson(mj, "deviceLogin");
                error = deviceMsg.error;
                if (error != null)
                {
                    return;
                }
                //获取制卡数据

                if (error == null)
                {
                    zkData = WeiWang.getZKData(ReadIDCar.persionid, ReadIDCar.name, out error);
                }
            })).ConfigureAwait(true);

            if (error != null)
            {
                ShowTip.show(false, BackExit.Exit, error);
                return;
            }
            check(zkData);
        }
 public static string getError(tools.AnalyzeJson json, string error)
 {
     if (error != null)
     {
         return(error);
     }
     else if (json == null)
     {
         return("空的内容");
     }
     else if (json["statusCode"].ToString() != "200")
     {
         return(json["message"].ToString());
     }
     else
     {
         return(null);
     }
 }
        private void setList(tools.AnalyzeJson retJson2)
        {
            table.clear();
            List <Brush> refullColors = new List <Brush>()
            {
                Brushes.Black, Brushes.Black, Brushes.Black, Brushes.Green
            };
            List <double> ratios = new List <double>()
            {
                1, 2, 1, 1.5
            };
            List <string> items = new List <string>()
            {
                "交易时间", "交易商户", "交易金额(元)", "交易流水号"
            };

            table.setTopItem(items, ratios, 26, new SolidColorBrush(Color.FromRgb(0x15, 0x4F, 0xC2)), true);
            int count = retJson2["data"]["data"].getArrayCount();

            for (int i = 0; i < count; i++)
            {
                List <string> line = new List <string>();
                line.Add(retJson2["data"]["data"][i]["transDate"].ToString());
                line.Add(retJson2["data"]["data"][i]["merchantName"].ToString());
                line.Add(retJson2["data"]["data"][i]["transAmt"].ToString());
                line.Add(retJson2["data"]["data"][i]["retriRefNo"].ToString());
                table.addTableItem(line, ratios, 23, refullColors, false);
            }

            for (int i = 0; i < 17; i++)
            {
                List <string> line = new List <string>();
                line.Add(DateTime.Now.AddDays(i).ToString("yyyy年MM月dd日"));
                line.Add("一二三四五六七把久是路店");
                line.Add("12.00");
                line.Add("123456789123456789");
                table.addTableItem(line, ratios, 23, refullColors, false);
            }

            table.updateScrollBar();
        }
Beispiel #11
0
        public static tools.AnalyzeJson Post_Json(string key, string jsonParas)
        {
            string error = null;

            try
            {
                string strURL = Config.net_dic("BaseURL") + Config.net_dic(key);
                Log.AddLog("Post", "URL:" + strURL);
                Log.AddLog("Post", "IN:" + jsonParas);

                //创建一个HTTP请求
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
                //Post请求方式
                request.Method = "POST";
                //内容类型
                request.ContentType = "application/json";
                //设置参数,并进行URL编码
                string paraUrlCoded = jsonParas;//System.Web.HttpUtility.UrlEncode(jsonParas);
                byte[] payload;
                //将Json字符串转化为字节
                payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
                //设置请求的ContentLength
                request.ContentLength = payload.Length;
                //发送请求,获得请求流

                Stream writer;
                try
                {
                    writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象
                }
                catch (Exception e)
                {
                    writer = null;
                    error  = "连接服务器失败:" + e.ToString();
                    return(new tools.AnalyzeJson(e.ToString(), false));
                }
                //将请求参数写入流
                writer.Write(payload, 0, payload.Length);
                writer.Close();//关闭请求流

                HttpWebResponse response;
                try
                {
                    //获得响应流
                    response = (HttpWebResponse)request.GetResponse();
                }
                catch (WebException ex)
                {
                    response = ex.Response as HttpWebResponse;
                    error    = "接收服务器数据异常!" + ex.ToString();
                    return(new tools.AnalyzeJson(error, false));
                }

                Stream       s           = response.GetResponseStream();
                StreamReader sRead       = new StreamReader(s);
                string       postContent = sRead.ReadToEnd();
                sRead.Close();
                Log.AddLog("Post", "Result:" + postContent);
                tools.AnalyzeJson ajson = new tools.AnalyzeJson(postContent);
                if (ajson.error == null && ajson["statusCode"].ToString() != "200")
                {
                    ajson.error = ajson["message"].ToString();
                }
                return(ajson);
            }
            catch (Exception e)
            {
                return(new tools.AnalyzeJson(e.ToString(), false));
            }
            finally
            {
                if (error != null)
                {
                    Log.AddLog("Post", error);
                }
            }
        }
Beispiel #12
0
        async private void WriteCar()
        {
            updateTitle();
            CD.business1.hidenBackAndExitBtn();
            Loading.show1("制卡中,请稍候...");
            string error = null;
            await TaskMore.Run(new Action(() =>
            {
                //==制卡
                string result = WeiWang.iWrite(out error);
                if (error != null)
                {
                    if (MS2.PutCardToReject() != null)
                    {
                        error += "-卡回收失败";
                    }
                    return;
                }

                /*
                 * //==读卡信息
                 * string[] datas = null;
                 * string atr2 = MS2.GetATR(out error);
                 * if (error != null)
                 *  return;
                 * bankcarNum = MS2.ReadBankNum(out error);
                 * if (error != null)
                 *  return;
                 * //卡识别码、卡类别、规范版本、初始化机构编号、发卡日期、卡有效期、卡号、社会保障号码、姓名、性别、民族、出生地、出生日期
                 * //0         1       2         3               4         5         6     7             8     9     10    11      12
                 * datas = MS2.GetBaseMsg(out error);
                 * if (error != null)
                 *  return;
                 * ssid = datas[6];
                 */

                //0,6217281914006994119,441800  ,441225198703040437,R47708862,441800D1560000053030737878EC1A84,杨建辉,0087CF20018649618B00930612,2.00    ,20200226,20300226
                //0,1                  ,2       ,3                 ,4        ,5                               ,6     ,7                         ,8       ,9       ,10
                //0,银行卡号           ,发卡地区,社会保障号码      ,卡号     ,卡识别码                        ,姓名  ,卡复位信息                ,规范版本,发卡日期,卡有效期
                string[] results = result.Split(',');

                MakeJson mj = new MakeJson();
                tools.AnalyzeJson aj = Network3.getJson(mj, "deviceLogin", out error);
                mj3 = new MakeJson();
                mj3.add("yhkh", results[1], DataStyle.STR);
                mj3.add("orgCode", aj["data"]["orgCode"], DataStyle.STR);
                mj3.add("devSeq", aj["data"]["devSeq"], DataStyle.STR);
                mj3.add("orgId", aj["data"]["orgId"], DataStyle.STR);
                mj3.add("atr", results[7], DataStyle.STR);
                mj3.add("ksbm", results[5], DataStyle.STR);
                mj3.add("sfzh", results[3], DataStyle.STR);
                mj3.add("xm", results[6], DataStyle.STR);
                mj3.add("kh", results[4], DataStyle.STR);
                mj3.add("backStatus", "1", DataStyle.STR);
                mj3.add("status", "1", DataStyle.STR);
                mj3.add("description", "制卡成功", DataStyle.STR);
                ssid = results[4];
            })).ConfigureAwait(true);

            if (error != null)
            {
                ShowTip.show(false, BackExit.Exit, error);
                return;
            }

            updateTitle();
            Autograph.GetObject().Goin(sign);
        }
        public static void checkSelf()
        {
            //while(true)
            //{
            //    Network3.login();
            //    int a = 0;
            //}
            return;

            try
            {
                Status.isWorking = true;
                Thread.Sleep(15000);

                //MS2.setLogFileName_Old("设备自检");
                string printStatus = "";
                bool   zkj         = false;
                bool   dyj         = false;
                int    canPrintNum = 0;
                string icError     = MS2.checkIC();
                string idError     = MS2.checkSFZ();
                string qrError     = MS2.checkScanner();
                string cameraError = MS2.checkSam();
                string printError  = Print.checkPrint(ref printStatus);
                string zkjError    = MS2.ResetAllAndGetStatus(out zkj, out dyj, ref canPrintNum);


                if (zkjError == null)
                {
                    zkjError = "正常";
                }
                if (icError == null)
                {
                    icError = "正常";
                }
                if (idError == null)
                {
                    idError = "正常";
                }
                if (qrError == null)
                {
                    qrError = "正常";
                }
                if (cameraError == null)
                {
                    cameraError = "正常";
                }
                if (printError == null)
                {
                    printError = "正常";
                }
                string result = "1";
                if (zkjError != "正常" ||
                    icError != "正常" ||
                    idError != "正常" ||
                    qrError != "正常" ||
                    printError != "正常" ||
                    cameraError != "正常")
                {
                    result = "0";
                }

                #region

                /*
                 * channelcode	String	是	渠道编码(参考3.1渠道类型编码说明 channelCode)
                 * deviceid	String	是	设备编码
                 * tokenid	String	是	权限验证码,前端主页面第一次进入会请求返回的key
                 * equipmentNo	String	是	设备id/编码
                 * checkState	String	是	自检状态 1通过,0不通过
                 * cardBox	String	是	卡盒
                 * wheelDisc	String	是	轮盘
                 * filpMachine	String	是	翻转机
                 * eleCar	String	是	电动小车
                 * icReader	String	是	IC读卡器
                 * cardReader	String	是	二代证读卡器
                 * a4printer	String	是	A4打印机
                 * voucherPrinter	String	是	凭条打印机
                 * camera	String	是	摄像头
                 * qrCode	String	是	二维码扫描仪
                 * mj.add("","", DataStyle.STR);
                 */
                #endregion
                MakeJson mj = new MakeJson();
                mj.add("checkState", result, DataStyle.STR);
                mj.add("cardBox", zkjError, DataStyle.STR);
                mj.add("wheelDisc", zkjError, DataStyle.STR);
                mj.add("filpMachine", zkjError, DataStyle.STR);
                mj.add("eleCar", zkjError, DataStyle.STR);
                mj.add("icReader", icError, DataStyle.STR);
                mj.add("cardReader", idError, DataStyle.STR);
                mj.add("a4printer", "正常", DataStyle.STR);
                mj.add("voucherPrinter", printError, DataStyle.STR);
                mj.add("camera", cameraError, DataStyle.STR);
                mj.add("qrCode", qrError, DataStyle.STR);

                string            error = null;
                tools.AnalyzeJson aj    = Network3.getJson(mj, "DevCheck", out error);

                //保存色带信息
                #region

                /*
                 * channelcode	String	是	渠道编码(参考3.1渠道类型编码说明 channelCode)
                 * deviceid	String	是	设备编码
                 * tokenid	String	是	权限验证码,前端主页面第一次进入会请求返回的key
                 * equipmentNo	String	是	设备id/编码
                 * ribState	String	是	色带使用状态 2余量充足(可制卡量>30张)、1即将耗尽(<=30张)、 0已耗尽(色带剩余可制卡量<=3)
                 *
                 */
                #endregion
                string have = "0";
                if (canPrintNum > 30)
                {
                    have = "2";
                }
                else if (canPrintNum <= 30 && canPrintNum > 0)
                {
                    have = "1";
                }
                MakeJson mj2 = new MakeJson();
                mj2.add("ribState", have, DataStyle.STR);
                string            error2 = null;
                tools.AnalyzeJson aj2    = Network3.getJson(mj2, "saveDevRibbon", out error2);


                //保存凭条打印机信息
                #region

                /*
                 * channelcode	String	是	渠道编码(参考3.1渠道类型编码说明 channelCode)
                 * deviceid	String	是	设备编码
                 * tokenid	String	是	权限验证码,前端主页面第一次进入会请求返回的key
                 * equipmentNo	String	是	设备id/编码
                 * priState	String	是	打印机使用状态 1正常、0缺纸
                 */
                #endregion
                MakeJson mj3 = new MakeJson();
                //mj3.add("priState", ((printStatus != null && printStatus.Replace(" ", "") == "") ? "1" : "0"), DataStyle.STR);
                mj3.add("priState", "1", DataStyle.STR);//Test
                string            error3 = null;
                tools.AnalyzeJson aj3    = Network3.getJson(mj3, "saveDevPrinter", out error3);
            }
            catch (Exception e)
            {
                Log.AddLog("设备自检", e.ToString());
            }
            finally
            {
                Status.isWorking = false;
            }
        }
        private static tools.AnalyzeJson getJson_private(string inJson, string urlKey, out string error)
        {
            Log.AddLog(logName, "接口入参:" + inJson);
            error = null;
            string url = null;

            try
            {
                url = Config.net_dic("BaseURL") + Config.net_dic(urlKey);
                if (urlKey != "Login")
                {
                    url += string.Format("?deviceid={0}&tokenid={1}", GetMacAddress(), token);
                }
            }
            catch (Exception e0)
            {
                Log.AddLog(logName, "读取接口" + urlKey + "失败:" + e0.ToString());
                error = "参数配置异常";
                return(null);
            }
            Log.AddLog(logName, "接口地址:" + url);
            Uri    uri     = new Uri(url);
            Common c       = new Common();
            string jsonStr = null;

            try
            {
                jsonStr = c.RetrunJSONValueByHttps(uri, inJson, ref error);
                if (error != null)
                {
                    jsonStr = c.RetrunJSONValueByHttps(uri, inJson, ref error);
                }
                Log.AddLog(logName, "接口出参:" + (jsonStr == null ? "" : jsonStr));
                Log.AddLog(logName, "错误信息:" + (error == null ? "" : error));
                if (error != null)
                {
                    error = "网络异常";
                }
            }
            catch (Exception e1)
            {
                error = "网络异常";
                Log.AddLog(logName, "调用接口失败:" + e1.ToString());
                return(null);
            }
            if (error != null)
            {
                return(null);
            }

            try
            {
                tools.AnalyzeJson aj = new tools.AnalyzeJson(jsonStr);
                return(aj);
            }
            catch (Exception e2)
            {
                Log.AddLog(logName, "数据解析异常:" + e2.ToString());
                error = "数据解析异常";
                return(null);
            }
        }
Beispiel #15
0
        //3.信息校验
        async private void goToLingKa()
        {
            bool carHasOut = false;

            tellHadGetCard = null;
            string error      = null;
            string bankcarnum = null;

            if (ds == null)
            {
                ds = sc.getSelectItems();
            }
            if (ds == null || ds.Count == 0)
            {
                return;
            }

            updateTitle();
            CD.business1.hidenBackAndExitBtn();
            CD.business1.stop();
            int getIndex = ds[0];

            ds.RemoveAt(0);

            Loading.show1("正在出卡,请稍候....");
            string carMsg = cpCardInfo["data"]["data"][getIndex]["klbName"].ToString() + "-" +
                            cpCardInfo["data"]["data"][getIndex]["yhkh"].ToString() + "-" +
                            cpCardInfo["data"]["data"][getIndex]["kh"].ToString();
            string   msg = cpCardInfo["data"]["data"][getIndex]["cardId"].ToString();
            MakeJson mj2 = new MakeJson();

            mj2.add("orgCode", deviceInfo["data"]["orgCode"], DataStyle.STR);
            mj2.add("devSeq", deviceInfo["data"]["devSeq"], DataStyle.STR);
            mj2.add("sfzh", cpCardInfo["data"]["data"][getIndex]["sfzh"], DataStyle.STR);
            mj2.add("xm", cpCardInfo["data"]["data"][getIndex]["xm"], DataStyle.STR);
            mj2.add("cardId", int.Parse(cpCardInfo["data"]["data"][getIndex]["cardId"].ToString()), DataStyle.INT);
            mj2.add("orgId", deviceInfo["data"]["orgId"], DataStyle.STR);
            mj2.add("applytype", "0", DataStyle.STR);
            string atr_json = cpCardInfo["data"]["data"][getIndex]["atr"].ToString();
            int    kc       = int.Parse(cpCardInfo["data"]["data"][getIndex]["slotno"].ToString());

            await TaskMore.Run(new Action(() =>
            {
                string atr_raed = null;
                string[] carDatas = null;
                error = MS2.PutCardToIC(atr_json, kc);
                if (error == null)
                {
                    atr_raed = MS2.GetATR(out error);
                }
                if (error == null)
                {
                    carDatas = MS2.GetBaseMsg(out error);
                }
                if (error == null)
                {
                    bankcarnum = MS2.ReadBankNum(out error);
                }
                if (error != null)
                {
                    ShowTip.show(false, BackExit.Exit, error);
                    return;
                }
                ssid = carDatas[6];
                //卡识别码、卡类别、规范版本、初始化机构编号、发卡日期、卡有效期、卡号、社会保障号码、姓名、性别、民族、出生地、出生日期
                //0         1       2         3               4         5         6     7             8     9     10    11      12
                if (atr_raed != cpCardInfo["data"]["data"][getIndex]["atr"].ToString() ||
                    carDatas[7] != cpCardInfo["data"]["data"][getIndex]["sfzh"].ToString() ||
                    carDatas[8] != cpCardInfo["data"]["data"][getIndex]["xm"].ToString() ||
                    carDatas[6] != cpCardInfo["data"]["data"][getIndex]["kh"].ToString() ||
                    bankcarnum != cpCardInfo["data"]["data"][getIndex]["yhkh"].ToString()
                    )
                {
                    error = "信息校验失败!";
                    MS2.PutCardToReject();
                }

                if (error != null)
                {
                    mj2.add("status", "2", DataStyle.STR);
                    mj2.add("description", "卡信息校验失败", DataStyle.STR);
                }
                else
                {
                    mj2.add("status", "1", DataStyle.STR);
                    mj2.add("description", "成功", DataStyle.STR);
                }
                tellHadGetCard = Network3.getJson(mj2, "uploadFKRecord");
            })).ConfigureAwait(true);

            if (error != null)
            {
                Log.AddLog("领卡", carMsg + "  error:" + error);
                if (carHasOut)
                {
                    MS2.PutCardToReject();
                }
                ShowTip.show(false, BackExit.Exit, error);
            }
            else if (tellHadGetCard.error != null)
            {
                MS2.PutCardToReject();

                ShowTip.show(false, BackExit.Exit, tellHadGetCard.error);
            }
            else
            {
                checkPsw();
            }
        }
Beispiel #16
0
        //2.选择卡片
        async private void selectCards()
        {
            index = 1;
            string error = null;

            if (CD.timeTag.equal(timeTag) == false)
            {
                return;
            }
            Loading.show1("正在查询个人数据...");
            await TaskMore.Run(new Action(() =>
            {
                MakeJson mj_normal = new MakeJson();
                deviceInfo = Network3.getJson(mj_normal, "deviceLogin");
                error = deviceInfo.error;
                if (error != null)
                {
                    return;
                }

                MakeJson mj = new MakeJson();
                mj.add("sfzh", ReadIDCar.persionid, DataStyle.STR);
                mj.add("xm", ReadIDCar.name, DataStyle.STR);
                cpCardInfo = Network3.getJson(mj, "getCPCardInfo");
                error = cpCardInfo.error;
            })).ConfigureAwait(true);

            if (error != null)
            {
                ShowTip.show(false, BackExit.Exit, error);
                return;
            }
            try
            {
                List <string[]> datas = new List <string[]>();
                int             count = cpCardInfo["data"]["data"].getArrayCount();
                //"序号,姓名,身份证号,待领卡类型,银行卡号,社保卡号"
                int k = 1;
                for (int i = 0; i < count; i++)
                {
                    if (cpCardInfo["data"]["data"][i]["status"].ToString() == "0")
                    {
                        string name = cpCardInfo["data"]["data"][i]["xm"].ToString();
                        string sfzh = cpCardInfo["data"]["data"][i]["sfzh"].ToString();
                        string yhkh = cpCardInfo["data"]["data"][i]["yhkh"].ToString();

                        name = "*" + name.Substring(1, name.Length - 1);
                        sfzh = sfzh.Substring(0, 6) + "**********" + sfzh.Substring(16, 2);
                        yhkh = "**********************".Substring(0, yhkh.Length - 4) + yhkh.Substring(yhkh.Length - 4, 4);

                        datas.Add(new string[] {
                            (k++).ToString(),
                            name,
                            sfzh,
                            cpCardInfo["data"]["data"][i]["klbName"].ToString(),
                            yhkh,
                            cpCardInfo["data"]["data"][i]["kh"].ToString()
                        });
                    }
                }

                if (sc == null)
                {
                    sc = new SelectCars();
                    sc.setSelectOK(goToLingKa);
                }
                updateTitle();
                sc.setTable(datas);
                CD.business1.setBusinessValue(sc);
            }
            catch (Exception e)
            {
                ShowTip.show(false, BackExit.Exit, "数据解析异常:" + e.ToString());
                return;
            }
        }
Beispiel #17
0
        //2.加载数据
        async private void LoadData()
        {
            BackExit.setBack(LoadData);
            index = 0;

            timeTag = CD.timeTag.updateTag();
            if (CD.business2 == null)
            {
                CD.business2 = new Business2();
            }
            CD.setMainUI(CD.business2);
            CD.business2.start();

            Loading.show2("正在查询,请稍候...");
            tools.AnalyzeJson retJson = null;
            await TaskMore.Run(new Action(() => {
                MakeJson json = new MakeJson();
                json.add("fkcs", Config.dic("cityCode"));
                json.add("shbzh", ReadIDCar.persionid);
                json.add("xm", ReadIDCar.name);
                //ppid String  是 由肇庆市社保局提供
                //appkey String  是 由肇庆市社保局提供
                retJson = Post.Post_Json("getCardProgress", json.ToString());
            })).ConfigureAwait(true);

            if (retJson.error != null)
            {
                ShowTip.show(false, BackExit.Exit, retJson.error);
            }
            else
            {
                if (retJson["data"]["err"].ToString() != "OK")
                {
                    ShowTip.show(false, BackExit.Exit, retJson["data"]["err"].ToString());
                    return;
                }
                if (retJson["data"]["validtag"].ToString().Trim().IndexOf("-") == 0)
                {
                    error.Text = "制卡失败:" + retJson["data"]["remarks"].ToString();
                }
                else
                {
                    error.Text = "";
                }

                times[0].Text = handleTimeStr(retJson["data"]["applytime"].ToString());
                times[1].Text = handleTimeStr(retJson["data"]["banktime"].ToString());
                times[2].Text = handleTimeStr(retJson["data"]["kszkhpsj"].ToString());
                times[3].Text = handleTimeStr(retJson["data"]["provincetime"].ToString());
                times[4].Text = handleTimeStr(retJson["data"]["citytime"].ToString());
                times[5].Text = handleTimeStr(retJson["data"]["gettime"].ToString());
                times[6].Text = handleTimeStr(retJson["data"]["yhjhtime"].ToString());

                if (times[0].Text == "")
                {
                    CD.business2.setBusinessValue(MakeCardProcess2.GetObject());
                    return;
                }

                if (times[4].Text != "")
                {
                    T52.Text = "(" + retJson["data"]["lkjgmc"].ToString() + ")";
                }
                else
                {
                    T52.Text = "";
                }

                index = 0;
                for (int i = 0; i < times.Count; i++)
                {
                    if (times[i].Text == "")
                    {
                        break;
                    }
                    index++;
                }

                showResult();
            }
        }
        public static void test_add_card()
        {
            try
            {
                MakeJson          mj       = new MakeJson();
                string            netError = null;
                tools.AnalyzeJson aj       = getJson(mj, "deviceLogin", out netError);

                //6、接口入库

                /*
                 * channelcode	String	是	渠道编码
                 * orgCode	String	是	网点编码(接口2.5返回orgCode)
                 * devSeq	String	是	设备序号(接口2.5返回devSeq)
                 * atr	String	是	ATR
                 * ksbm	String	是	卡识别码(社保卡时必填)
                 * yhkh	String	是	银行卡号
                 * shbzh	String	是	社会保障号(社保卡时必填)
                 * sfzh	String	是	身份证(社保卡时必填)
                 * xm	String	是	姓名(社保卡时必填)
                 * slotno	int	是	槽号
                 * orgId	long	是	网点id(2.5接口返回的orgId)
                 * klb	String	是	卡类别 01:社保卡 02:借记卡 03:信用卡
                 * gfbb	String	否	规范版本
                 * jgbm	String	否	机构编码
                 * fkrq	String	否	发卡日期yyyyMMdd
                 * kyxq	String	否	卡有效期
                 * kh	String	否	卡号
                 * sex	String	否	性别
                 * nation	String	否	民族
                 * csrq	String	否	出生日期
                 *
                 */
                string   carDatas1 = "111|1|1|111111|20200101|20200101|01234567891|44178994455745255|李三|1|01|出生地|20200101";
                string[] carDatas  = carDatas1.Split('|');
                MakeJson mj2       = new MakeJson();
                mj2.add("orgCode", aj["data"]["orgCode"], DataStyle.STR);
                mj2.add("devSeq", aj["data"]["devSeq"], DataStyle.STR);
                mj2.add("orgId", int.Parse(aj["data"]["orgId"].ToString()), DataStyle.INT);
                mj2.add("atr", "111111111111111111", DataStyle.STR);
                mj2.add("yhkh", "66666666666666", DataStyle.STR);
                mj2.add("slotno", "1", DataStyle.INT);
                mj2.add("boxno", 1, DataStyle.INT);

                //卡识别码、卡类别、规范版本、初始化机构编号、发卡日期、卡有效期、卡号、社会保障号码、姓名、性别、民族、出生地、出生日期
                //0         1       2         3               4         5         6     7             8     9     10    11      12

                //mj2.add("ksbm", carDatas[0], DataStyle.STR);
                //mj2.add("shbzh", carDatas[7], DataStyle.STR);
                //mj2.add("kh", carDatas[6], DataStyle.STR);
                //mj2.add("sfzh", carDatas[7], DataStyle.STR);
                //mj2.add("xm", carDatas[8], DataStyle.STR);
                //mj2.add("klb", "01", DataStyle.STR);
                //mj2.add("gfbb", carDatas[2], DataStyle.STR);
                //mj2.add("jgbm", carDatas[3], DataStyle.STR);
                //mj2.add("fkrq", carDatas[4], DataStyle.STR);
                //mj2.add("kyxq", carDatas[5], DataStyle.STR);
                //mj2.add("sex", carDatas[9], DataStyle.STR);
                //mj2.add("nation", carDatas[10], DataStyle.STR);
                //mj2.add("csrq", carDatas[12], DataStyle.STR);

                //string netError2 = null;
                //AnalyzeJson aj2 = Network3.getJson(mj2, "uploadYZCardInfo", out netError2);


                mj2.add("ksbm", carDatas[0], DataStyle.STR);
                mj2.add("shbzh", carDatas[7], DataStyle.STR);
                mj2.add("kh", carDatas[6], DataStyle.STR);
                mj2.add("sfzh", carDatas[7], DataStyle.STR);
                mj2.add("xm", carDatas[8], DataStyle.STR);
                mj2.add("klb", "01", DataStyle.STR);
                mj2.add("gfbb", carDatas[2], DataStyle.STR);
                mj2.add("jgbm", carDatas[3], DataStyle.STR);
                mj2.add("fkrq", carDatas[4], DataStyle.STR);
                mj2.add("kyxq", carDatas[5], DataStyle.STR);
                mj2.add("sex", carDatas[9], DataStyle.STR);
                mj2.add("nation", carDatas[10], DataStyle.STR);
                mj2.add("csrq", carDatas[12], DataStyle.STR);

                string            netError2 = null;
                tools.AnalyzeJson aj2       = Network3.getJson(mj2, "uploadCPCardInfo", out netError2);
            }
            catch (Exception e)
            {
            }
            finally
            {
                Status.isWorking = false;
            }
        }
        //接口测试
        public static void test()
        {
            //自检
            {
                /*
                 * channelcode	String	是	渠道编码(参考3.1渠道类型编码说明 channelCode)
                 * deviceid	String	是	设备编码
                 * tokenid	String	是	权限验证码,前端主页面第一次进入会请求返回的key
                 * equipmentNo	String	是	设备id/编码
                 * checkState	String	是	自检状态 1通过,0不通过
                 * cardBox	String	是	卡盒
                 * wheelDisc	String	是	轮盘
                 * filpMachine	String	是	翻转机
                 * eleCar	String	是	电动小车
                 * icReader	String	是	IC读卡器
                 * cardReader	String	是	二代证读卡器
                 * a4printer	String	是	A4打印机
                 * voucherPrinter	String	是	凭条打印机
                 * camera	String	是	摄像头
                 * qrCode	String	是	二维码扫描仪
                 * mj.add("","", DataStyle.STR);
                 */
                MakeJson mj = new MakeJson();
                mj.add("checkState", "1", DataStyle.STR);
                mj.add("cardBox", "正常", DataStyle.STR);
                mj.add("wheelDisc", "正常", DataStyle.STR);
                mj.add("filpMachine", "正常", DataStyle.STR);
                mj.add("eleCar", "正常", DataStyle.STR);
                mj.add("icReader", "正常", DataStyle.STR);
                mj.add("cardReader", "正常", DataStyle.STR);
                mj.add("a4printer", "正常", DataStyle.STR);
                mj.add("voucherPrinter", "正常", DataStyle.STR);
                mj.add("camera", "正常", DataStyle.STR);
                mj.add("qrCode", "正常", DataStyle.STR);

                string error = null;
                //AnalyzeJson aj = getJson(mj, "DevCheck", out error);
            }
            //保存色带信息
            {
                /*
                 * channelcode	String	是	渠道编码(参考3.1渠道类型编码说明 channelCode)
                 * deviceid	String	是	设备编码
                 * tokenid	String	是	权限验证码,前端主页面第一次进入会请求返回的key
                 * equipmentNo	String	是	设备id/编码
                 * ribState	String	是	色带使用状态 2余量充足(可制卡量>30张)、1即将耗尽(<=30张)、 0已耗尽(色带剩余可制卡量<=3)
                 *
                 */
                MakeJson mj = new MakeJson();
                mj.add("ribState", "2", DataStyle.STR);
                string error = null;
                //AnalyzeJson aj = getJson(mj, "saveDevRibbon", out error);
            }
            //保存凭条打印机信息
            {
                /*
                 * channelcode	String	是	渠道编码(参考3.1渠道类型编码说明 channelCode)
                 * deviceid	String	是	设备编码
                 * tokenid	String	是	权限验证码,前端主页面第一次进入会请求返回的key
                 * equipmentNo	String	是	设备id/编码
                 * priState	String	是	打印机使用状态 1正常、0缺纸
                 */
                MakeJson mj = new MakeJson();
                mj.add("priState", "1", DataStyle.STR);
                string error = null;
                //AnalyzeJson aj = getJson(mj, "saveDevPrinter", out error);
            }
            //保存设备在线信息saveDevOnline
            {
                /*
                 * channelcode	String	是	渠道编码(参考3.1渠道类型编码说明 channelCode)
                 * deviceid	String	是	设备编码
                 * tokenid	String	是	权限验证码,前端主页面第一次进入会请求返回的key
                 * equipmentNo	String	是	设备id/编码
                 * onlineState	String	是	状态1在线,0不在线
                 */
                MakeJson mj = new MakeJson();
                mj.add("onlineState", "1", DataStyle.STR);
                string error = null;
                //AnalyzeJson aj = getJson(mj, "saveDevOnline", out error);
            }
            //设备登录deviceLogin + 预制卡入库管理putYZCardInStock
            {
                /*
                 * deviceid	String	是	设备编号
                 * deviceIP	String	否	设备IP地址
                 */
                MakeJson mj = new MakeJson();
                //mj.add("deviceid", GetMacAddress(), DataStyle.STR);
                string            error = null;
                tools.AnalyzeJson aj    = getJson(mj, "deviceLogin", out error);

                /*
                 * 返回字段
                 * 1	deviceId	设备编号
                 * 2	address	设备所在地址
                 * 3	status	状态 Y可用,S删除,T停用
                 * 4	deviceName	设备名称
                 * 5	areaCode	区域编码
                 * 6	branch	网点信息
                 * 7	deviceIp	设备ip
                 * 8	deviceMac	设备mac
                 * 9	orgId	网点id
                 * 10	orgCode	网点编码
                 * 11	devSeq	设备序列号
                 *
                 */


                /*
                 * channelcode	String	是	渠道编码
                 * allNum	int	是	卡总数
                 * orgId	String	是	网点id(2.5接口返回的orgId)
                 * operator	String	是	操作人员(姓名)
                 */
                MakeJson mj1 = new MakeJson();
                mj1.add("allNum", 150, DataStyle.INT);
                mj1.add("orgId", aj["data"]["orgId"].ToString(), DataStyle.STR);
                mj1.add("operator", "测试姓名", DataStyle.STR);

                string error1 = null;
                //AnalyzeJson aj1 = getJson(mj1, "putYZCardInStock", out error1);
            }
            //制卡->回盘->查询卡信息->是否可以领卡->领卡   回盘getBackData + 上传领卡信息uploadFKRecord
            if (true)
            {
                MakeJson          mj    = new MakeJson();
                string            error = null;
                tools.AnalyzeJson aj    = getJson(mj, "deviceLogin", out error);

                /*
                 * channelcode	String	是	渠道编码
                 * orgCode	String	是	网点编码(接口2.5返回orgCode)
                 * devSeq	String	是	设备序号(接口2.5返回devSeq)
                 * atr	String	是	ATR
                 * ksbm	String	是	卡识别码
                 * sfzh	String	是	身份证
                 * xm	String	是	姓名
                 * status	String	是	制卡状态 1:成功 2:失败
                 * orgId	String	是	网点id(2.5接口返回的orgId)
                 * kh	String	是	社保卡号
                 * yhkh	String	是	银行卡号
                 * backStatus	String	是	回盘状态 1:回盘成功,2:回盘失败
                 * backmsg	String	否	回盘信息
                 * slotno	String	否	槽号
                 * batchno	String	否	批次号
                 * description	String	否	制卡成功或失败原因描述
                 * ksdm	String	否	卡商代码
                 * gfbb	String	否	规范版本
                 * jgbm	String	否	机构编码
                 * yhbm	String	否	银行编码
                 * kyxq	String	否	卡有效期
                 * sex	String	否	性别
                 * nation	String	否	民族
                 *
                 *  "channelcode": "CardDispenser",
                 * "atr": "3B6D0000008154443686605328A8888888",
                 * "ksbm": "3B6D0011111111111111113388888888",
                 * "sfzh": "413024197410137053",
                 * "xm": "张四",
                 * "status": "1",
                 * "batchno": "PC1000008",
                 * "orgId": 3,
                 * "yhkh": "6688888888888888888888",
                 * "kh": "A88888888",
                 * "orgCode": "4400",
                 * "devSeq": "1",
                 * "backStatus": "2"
                 *
                 */
                MakeJson mj3 = new MakeJson();
                mj3.add("orgCode", aj["data"]["orgCode"], DataStyle.STR);
                mj3.add("devSeq", aj["data"]["devSeq"], DataStyle.STR);
                mj3.add("atr", "3B6D0000008154443686605328A8888881", DataStyle.STR);
                mj3.add("ksbm", "3B6D0011111111111111113388888881", DataStyle.STR);
                mj3.add("sfzh", "413024197410137051", DataStyle.STR);
                mj3.add("xm", "张无", DataStyle.STR);
                mj3.add("status", "1", DataStyle.STR);
                mj3.add("orgId", aj["data"]["orgId"], DataStyle.STR);
                mj3.add("kh", "A123456781", DataStyle.STR);
                mj3.add("yhkh", "6688888888888888888881", DataStyle.STR);
                mj3.add("backStatus", "1", DataStyle.STR);
                mj3.add("description", "制卡成功", DataStyle.STR);


                string            error3 = null;
                tools.AnalyzeJson aj3    = getJson(mj3, "getBackData", out error3);



                /*
                 * channelcode	String	是	渠道编码
                 * sfzh	String	是	身份证号
                 * xm	String	是	姓名
                 * pageno	int	否	页码
                 * pagesize	int	否	页数
                 * JSON数据格式:
                 * {
                 * "channelcode": "CardDispenser",
                 * "sfzh": "413024197410137053",
                 * "xm": "张四"
                 * }
                 */
                //getCPCardInfo=/iface/machine/getCPCardInfo	#查询成品卡数据
                MakeJson mj4 = new MakeJson();
                mj4.add("sfzh", "413024197410137051", DataStyle.STR);
                mj4.add("xm", "张无", DataStyle.STR);
                string            error4 = null;
                tools.AnalyzeJson aj4    = getJson(mj4, "getCPCardInfo", out error4);


                /*    查询领卡授权信息canGetCard
                 * channelcode	String	是	渠道编码
                 * bankNo	String	是	银行卡号
                 * orgCode	String	是	网点编码(接口2.5返回orgCode)
                 * devSeq	String	是	设备序号(接口2.5返回devSeq)
                 * JSON数据格式:
                 * {
                 * "channelcode": "CardDispenser",
                 * "bankNo": "66666668888888",
                 * "orgCode": "4400",
                 * "devSeq": "1"
                 * }
                 *
                 * yhkh
                 */
                MakeJson mj5 = new MakeJson();
                mj5.add("bankNo", aj4["data"]["data"][0]["yhkh"], DataStyle.STR);
                mj5.add("orgCode", aj["data"]["orgCode"], DataStyle.STR);
                mj5.add("devSeq", aj["data"]["devSeq"], DataStyle.STR);
                string            error5 = null;
                tools.AnalyzeJson aj5    = getJson(mj5, "canGetCard", out error5);



                /*
                 * channelcode	String	是	渠道编码
                 * orgCode	String	是	网点编码(接口2.5返回orgCode)
                 * devSeq	String	是	设备序号(接口2.5返回devSeq)
                 * sfzh	String	是	身份证
                 * xm	String	是	姓名
                 * status	String	是	发卡状态 1:成功 2:失败
                 * description	String	是	成功或失败原因
                 * cardId	long	是	卡片id (成品卡:2.11接口返回的cardId)
                 * applytype	String	是	申请类型(0自领或1代领)
                 * orgId	String	是	网点id(2.5接口返回的orgId)
                 * szqmId	long	否	数字签名照片id (2.15接口返回的picId)
                 * rlzpId	long	否	领卡人照片id (2.15接口返回的picId)
                 *
                 */
                MakeJson mj2 = new MakeJson();
                mj2.add("orgCode", aj["data"]["orgCode"], DataStyle.STR);
                mj2.add("devSeq", aj["data"]["devSeq"], DataStyle.STR);
                mj2.add("sfzh", "413024197410137053", DataStyle.STR);
                mj2.add("xm", "张四", DataStyle.STR);
                mj2.add("status", "1", DataStyle.STR);
                mj2.add("description", "成功", DataStyle.STR);
                mj2.add("cardId", int.Parse(aj4["data"]["data"][0]["cardId"].ToString()), DataStyle.INT);
                mj2.add("applytype", "0", DataStyle.STR);
                mj2.add("orgId", aj["data"]["orgId"], DataStyle.STR);
                string            error2 = null;
                tools.AnalyzeJson aj2    = getJson(mj2, "uploadFKRecord", out error2);
            }
            //
            {
                //2.2	校验软件版本信息checkUpdate

                /*
                 * cpu	String	是	CPU编码
                 * model	String	否	型号
                 * hardwareVersion	String	否	设备硬件版本号
                 * androidVersion	String	否	设备安卓版本号
                 * appType	String	是	App类型(参考系统字典设置值)
                 * softwareVersion	String	是	设备软件版本号(整数)
                 * keyboardCode	String	否	密码键盘机器号
                 * encryptionString	String	否	加密字符串
                 * moduleId	String	否	3G模块ID
                 *
                 */
                MakeJson mj = new MakeJson();
                mj.add("cpu", GetMacAddress(), DataStyle.STR);
                mj.add("appType", "SelfService_Card_NH", DataStyle.STR);
                mj.add("softwareVersion", "1", DataStyle.STR);
                string            error = null;
                tools.AnalyzeJson aj    = getJson(mj, "checkUpdate", out error);



                //2.3	下载新版软件文件downloadVersion接口

                /*
                 * cpu	String	是	CPU编码
                 * model	String	否	型号
                 * hardwareVersion	String	否	设备硬件版本号
                 * androidVersion	String	否	设备安卓版本号
                 * appType	String	是	App类型(参考系统字典设置值)
                 * softwareVersion	String	否	设备软件版本号(整数)
                 * keyboardCode	String	否	密码键盘机器号
                 * encryptionString	String	否	加密字符串
                 * moduleId	String	否	3G模块ID
                 */

                MakeJson mj2 = new MakeJson();
                mj2.add("cpu", GetMacAddress(), DataStyle.STR);
                mj2.add("appType", "SelfService_Card_NH", DataStyle.STR);
                string            error2 = null;
                tools.AnalyzeJson aj2    = getJson(mj2, "downloadVersion", out error2);
            }
        }
Beispiel #20
0
        //业务流程

        public void addCar2()
        {
            try
            {
                MS2.Open();
                string error = MS2.checkMachine();
                if (error != null)
                {
                    Log(error);
                    ShowError("设备异常:" + error);
                    return;
                }

                string            addCarError = null;
                MakeJson          mj          = new MakeJson();
                tools.AnalyzeJson aj          = Network3.getJson(mj, "deviceLogin", out error);
                if (error != null)
                {
                    Log(error);
                    addCarError = "网络异常";
                }
                else if (aj != null && aj["statusCode"].ToString() != "200")
                {
                    Log(error);
                    addCarError = "设备登录失败。";
                }
                //处理
                if (addCarError != null)
                {
                    ShowError(addCarError);
                    return;
                }

                MS2.ResetWithOutPrint();
                string   boxs  = Config.dic("addCardBoxs");
                string[] boxs2 = boxs.Split('|');
                foreach (string box_ in boxs2)
                {
                    int box = int.Parse(box_);
                    while (true)
                    {
                        //1、料盒出卡
                        error = MS2.GetCarFromBox(box);
                        if (error != null && error == "-1")
                        {
                            break;
                        }
                        else if (error != null)
                        {
                            ShowError("出卡异常,请联系管理员处理");
                            return;
                        }
                        //2、移到读卡器
                        string atr = MS2.GetATR(out error);
                        if (error != null)
                        {
                            addFailed();
                            MS2.PutCardToReject();
                            if (error.IndexOf("-1") != -1)
                            {
                                ShowError("读卡异常,请联系管理员处理");
                                return;
                            }
                            continue;
                        }
                        //3、读银行卡号
                        string bankcarNum = MS2.ReadBankNum(out error);
                        if (error != null)
                        {
                            addFailed();
                            MS2.PutCardToReject();
                            continue;
                        }
                        //4、读社保基本信息
                        string[] carDatas = MS2.GetBaseMsg(out error);
                        if (error != null)
                        {
                            addFailed();
                            MS2.PutCardToReject();
                            continue;
                        }
                        //5、入库
                        int stlo = 0;
                        error = MS2.PutCardToStore(atr, ref stlo);
                        if (error != null)
                        {
                            addFailed();
                            ShowError(error);
                            return;
                        }
                        //6、接口入库

                        /*
                         * channelcode	String	是	渠道编码
                         * orgCode	String	是	网点编码(接口2.5返回orgCode)
                         * devSeq	String	是	设备序号(接口2.5返回devSeq)
                         * atr	String	是	ATR
                         * ksbm	String	是	卡识别码(社保卡时必填)
                         * yhkh	String	是	银行卡号
                         * shbzh	String	是	社会保障号(社保卡时必填)
                         * sfzh	String	是	身份证(社保卡时必填)
                         * xm	String	是	姓名(社保卡时必填)
                         * slotno	int	是	槽号
                         * orgId	long	是	网点id(2.5接口返回的orgId)
                         * klb	String	是	卡类别 01:社保卡 02:借记卡 03:信用卡
                         * gfbb	String	否	规范版本
                         * jgbm	String	否	机构编码
                         * fkrq	String	否	发卡日期yyyyMMdd
                         * kyxq	String	否	卡有效期
                         * kh	String	否	卡号
                         * sex	String	否	性别
                         * nation	String	否	民族
                         * csrq	String	否	出生日期
                         *
                         */

                        MakeJson mj2 = new MakeJson();
                        mj2.add("orgCode", aj["data"]["orgCode"], DataStyle.STR);
                        mj2.add("devSeq", aj["data"]["devSeq"], DataStyle.STR);
                        mj2.add("orgId", int.Parse(aj["data"]["orgId"].ToString()), DataStyle.INT);
                        mj2.add("atr", atr, DataStyle.STR);
                        mj2.add("yhkh", bankcarNum, DataStyle.STR);
                        mj2.add("slotno", stlo, DataStyle.INT);
                        mj2.add("boxno", 1, DataStyle.INT);
                        //卡识别码、卡类别、规范版本、初始化机构编号、发卡日期、卡有效期、卡号、社会保障号码、姓名、性别、民族、出生地、出生日期
                        //0         1       2         3               4         5         6     7             8     9     10    11      12
                        mj2.add("ksbm", carDatas[0], DataStyle.STR);
                        mj2.add("shbzh", carDatas[7], DataStyle.STR);
                        mj2.add("kh", carDatas[6], DataStyle.STR);
                        mj2.add("sfzh", carDatas[7], DataStyle.STR);
                        mj2.add("xm", carDatas[8], DataStyle.STR);
                        mj2.add("klb", "01", DataStyle.STR);
                        mj2.add("gfbb", carDatas[2], DataStyle.STR);
                        mj2.add("jgbm", carDatas[3], DataStyle.STR);
                        mj2.add("fkrq", carDatas[4], DataStyle.STR);
                        mj2.add("kyxq", carDatas[5], DataStyle.STR);
                        mj2.add("sex", carDatas[9], DataStyle.STR);
                        mj2.add("nation", carDatas[10], DataStyle.STR);
                        mj2.add("csrq", carDatas[12], DataStyle.STR);
                        tools.AnalyzeJson aj2 = Network3.getJson(mj2, "uploadCPCardInfo");
                        if (aj2.error != null)
                        {
                            addFailed();
                            addCarError = "后台入库接口调用失败";
                            error       = MS2.PutCardToIC(atr, stlo);
                            if (error == null)
                            {
                                error = MS2.PutCardToReject();
                            }
                            if (error != null)
                            {
                                ShowTip.show(false, null, "机器故障:" + error);
                                End();
                                return;
                            }
                            continue;
                        }
                        addSuccess();
                    }
                }
                End();
            }
            catch (Exception e)
            {
                Log("加卡异常:" + e.ToString());
                ShowError("加卡异常:" + e.ToString());
            }
        }