Exemplo n.º 1
0
        private static int icdev;// 通讯设备标识符

        //读取会员卡数据
        public static bool read_data(string company_code, ref string card_str)
        {
            if (!connect_card_machine())
            {
                return(false);
            }

            int i = 0;

            byte[] data   = new byte[16];
            byte[] p_dest = new byte[16];

            for (i = 0; i < 16; i++)
            {
                data[i] = 0;
            }
            for (i = 0; i < 16; i++)
            {
                p_dest[i] = 0;
            }

            int st = IC4442.srd_4442(icdev, 32, 16, data);

            if (st == 0)
            {
                st       = IC4442.my_decrypt(data, p_dest);
                card_str = System.Text.Encoding.ASCII.GetString(p_dest);
                if (!card_str.Contains(company_code))
                {
                    return(false);
                }

                card_str = card_str.Substring(company_code.Length);
                string tmpStr = "";
                foreach (char c in card_str)
                {
                    if (char.IsDigit(c))
                    {
                        tmpStr += c;
                    }
                }
                card_str = tmpStr;

                st = IC.dv_beep(icdev, 20);

                st = IC.ic_exit(icdev);
                return(true);
            }
            else
            {
                return(false);
            }
        }