private void checkHasCarIn()
        {
            if (Visibility != Visibility.Visible)
            {
                checkTP.stop();
                return;
            }
            bool hasCarIn = MS2.IfHasCarIn();

            if (Visibility != Visibility.Visible)
            {
                checkTP.stop();
                return;
            }
            if (hasCarIn == false)
            {
                if (nextStep == null)
                {
                    TH.addOnceUI(BackExit.Exit);
                }
                else
                {
                    TH.addOnceUI(nextStep);
                }
                checkTP.stop();
            }
        }
예제 #2
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();
            }
        }
        async private void WriteCar()
        {
            updateTitle();
            CD.business1.hidenBackAndExitBtn();
            Loading.show1("制卡中,请稍候...");
            string error = null;
            string atr2  = null;

            await TaskMore.Run(new Action(() =>
            {
                //==制卡
                string result = WeiWang.iWrite(out error);
                if (error != null)
                {
                    if (MS2.PutCardToReject() != null)
                    {
                        error += "-卡回收失败";
                    }
                    return;
                }
            })).ConfigureAwait(true);

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

            updateTitle();
            // Autograph.GetObject().Goin(sign);
            putCardOut();
        }
 public void Goin(Action action)
 {
     nextStep = action;
     MS2.Open();
     timeTag = CD.timeTag.getTag();
     CD.business1.setBusinessValue(this);
     checkTP.start();
 }
 public void Goin()
 {
     nextStep = null;
     MS2.Open();
     timeTag = CD.timeTag.getTag();
     BackExit.LetNextClickToMain();
     CD.business1.setBusinessValue(this);
     checkTP.start();
 }
        //挂失和获取数据
        async private void handlePersionData(string style)
        {
            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;
                }
                zkData = WeiWang.getZKData(ReadIDCar.persionid, ReadIDCar.name, out error);
                if (error != null)
                {
                    error = null;
                    //一人一卡查询 00 返回
                    if (WeiWang.allDsjk(ReadIDCar.persionid, ReadIDCar.name, out error))
                    {
                        ShowTip.show(false, BackExit.Exit, "您已有卡,不能重复制卡");
                        return;
                    }
                    error = null;
                    error = WeiWang.applyDataXinBanKa(style, Config.dic("AreaCode"));
                    //获取制卡数据
                    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);
        }
예제 #7
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);
        }
예제 #8
0
        //5.取卡
        async private void PutCardOut()
        {
            string error = null;

            updateTitle();
            Loading.show1("正在启用社保卡,请稍候....");
            await TaskMore.Run(new Action(() =>
            {
                //激活
                error = WeiWang.setStart(ssid);
                MS2.PutCardOut();
            })).ConfigureAwait(true);

            new Task(new Action(() => {
                //打印凭条
                List <string> printDatas = new List <string>();
                printDatas.Add("        肇庆市社会保障卡业务回执单");
                printDatas.Add("业务类型:自助领卡");
                printDatas.Add("交易流水号:" + tellHadGetCard["data"]["transNo"].ToString());
                printDatas.Add("终端名称:" + deviceInfo["data"]["deviceName"].ToString());
                printDatas.Add("终端编号:" + deviceInfo["data"]["deviceId"].ToString());
                printDatas.Add("所属区域:" + deviceInfo["data"]["areaName"].ToString());
                printDatas.Add("所属网点:" + deviceInfo["data"]["branch"].ToString());
                printDatas.Add("网点编号:" + deviceInfo["data"]["orgCode"].ToString());
                printDatas.Add("交易时间:" + System.DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"));
                printDatas.Add("交易结果:领卡成功");
                printDatas.Add("卡号:" + CD.hidenBankNum(tellHadGetCard["data"]["yhkh"].ToString()));
                printDatas.Add("领卡人:" + CD.hidenName(tellHadGetCard["data"]["xm"].ToString()));
                Print.print(printDatas);
            })).Start();

            if (error != null)
            {
                ShowTip.show(false, null, error);
            }
            if (ds.Count > 0)
            {
                I_GetSSCar_old.getObject().Goin(goToLingKa);
            }
            else
            {
                CD.business1.showBackAndExitBtn();
                I_GetSSCar_old.getObject().Goin();
            }
            BackExit.LetNextClickToMain();
            CD.business1.showBackAndExitBtn();
        }
예제 #9
0
        async private void WriteCar()
        {
            updateTitle();
            CD.business1.hidenBackAndExitBtn();
            Loading.show1("制卡中,请稍候...");
            string error   = null;
            string message = null;
            await TaskMore.Run(new Action(() =>
            {
                //==制卡
                string result = WeiWang.iWrite(out error);
                if (error != null)
                {
                    if (MS2.PutCardToReject() != null)
                    {
                        error += "-卡回收失败";
                    }
                    return;
                }
                else
                {
                    string result2 = WeiWang.backTOSKG(Config.dic("KeyId"), personid, name, "-1");
                    if (result2 != "OK")
                    {
                        message += "市卡管回盘失败,请取卡后联系工作人员,以免影响正常使用!";
                        ShowTip.show(false, BackExit.Exit, message);
                    }
                }


                //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(',');
            })).ConfigureAwait(true);

            if (error != null)
            {
                ShowTip.show(false, BackExit.Exit, error);
                return;
            }
            putCardOut();
        }
예제 #10
0
        string serialNumber = "";//流水号

        //出卡
        async private void putCardOut()
        {
            updateTitle();
            string error = null;

            Loading.show1("正在激活社保卡,请稍候...");

            await TaskMore.Run(new Action(() => {
                //激活
                error = WeiWang.setStart(ssid);
                //打印凭条
                //List<string> printDatas = new List<string>();
                //printDatas.Add("        肇庆市社会保障卡业务回执单");
                //printDatas.Add("业务类型:自助补卡");
                //printDatas.Add("交易流水号:" + serialNumber);
                //printDatas.Add("终端名称:" + deviceMsg["data"]["deviceName"].ToString());
                //printDatas.Add("终端编号:" + deviceMsg["data"]["deviceId"].ToString());
                //printDatas.Add("所属区域:" + deviceMsg["data"]["areaName"].ToString());
                //printDatas.Add("所属网点:" + deviceMsg["data"]["branch"].ToString());
                //printDatas.Add("网点编号:" + deviceMsg["data"]["orgCode"].ToString());
                //printDatas.Add("交易时间:" + System.DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"));
                //printDatas.Add("交易结果:补卡成功");
                //printDatas.Add("卡号:" + CD.hidenBankNum(bankcarNum));
                //printDatas.Add("领卡人:" + CD.hidenName(ReadIDCar.name));
                //Print.print(printDatas);
                //出卡
                MS2.PutCardOut();
            })).ConfigureAwait(true);

            if (error != null)
            {
                ShowTip.show(false, null, "社保卡激活失败:" + error);
            }

            I_GetSSCar_old getSSCar = I_GetSSCar_old.getObject();

            getSSCar.Goin();
            BackExit.LetNextClickToMain();
            CD.business1.showBackAndExitBtn();
        }
예제 #11
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;
            }
        }
예제 #13
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());
            }
        }
예제 #14
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();
            }
        }