| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- namespace ReadCard_ChangChunMI
- {
- public partial class frmReadCard_CC : Form
- {
- public string outParam="";
- //初始化
- [DllImport("HeaSecReadInfo.dll", EntryPoint = "Init", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
- public static extern int Init([MarshalAs(UnmanagedType.LPArray)] byte[] pInitInfo, [MarshalAs(UnmanagedType.LPArray)] byte[] pErrMsg);
- [DllImport("HeaSecReadInfo.dll", EntryPoint = "ReadCardBas", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
- public static extern int ReadCardBas([MarshalAs(UnmanagedType.LPArray)] byte[] pCardInfo, [MarshalAs(UnmanagedType.LPArray)] byte[] pBusiCardInfo);
- //社保卡-本地
- [DllImport("SSCardDriver.dll", EntryPoint = "iReadCardBas", CharSet = CharSet.Ansi, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
- static extern int ReadCardBas(int iType, StringBuilder pOutInfo);
- //社保卡-异地1
- [DllImport("SSCardDriver.dll", EntryPoint = "iReadCardBas_HSM_Step1", CharSet = CharSet.Ansi, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
- static extern int ReadCardBas_HSM_Step1(int iType, StringBuilder pOutInfo);
- //社保卡-异地2
- [DllImport("SSCardDriver.dll", EntryPoint = "iReadCardBas_HSM_Step2", CharSet = CharSet.Ansi, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
- static extern int ReadCardBas_HSM_Step2(StringBuilder pKey, StringBuilder pOutInfo);
- public int initCard()
- {
- int rtn = 0;
- try
- {
- rtb_Record.AppendText("医保读卡-initCard初始化-开始【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "】" + "\n");
- string str = "{\"IP\":\"ddjk.jlhs.gov.cn\",\"PORT\":20215,\"TIMEOUT\":60,\"LOG_PATH\":\"C:/neu_log/\",\"SFZ_DRIVER_TYPE\":1}";
- byte[] input = System.Text.Encoding.Default.GetBytes(str);
- byte[] output = new byte[300];
- rtn = Init(input, output);
- rtb_Record.AppendText("医保读卡-initCard初始化-结束【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "】" + "\n");
- }
- catch (Exception e)
- {
- rtn = -1;
- MessageBox.Show(e.Message);
- }
- return rtn;
- }
- public int readCard(out string Instr, out string outstr)
- {
- int rtn = 0;
- Instr = "";
- outstr = "";
-
- try
- {
- rtb_Record.AppendText("initCard初始化-开始【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "】" + "\n");
- if (initCard() != 0)
- {
- rtn = -1;
- return rtn;
- }
- rtb_Record.AppendText("initCard初始化-结束【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "】" + "\n");
- byte[] rin = new byte[500];
- byte[] rout = new byte[500];
- rtb_Record.AppendText("ReadCardBas读社保卡信息-开始【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "】" + "\n");
-
- if (ReadCardBas(rin, rout) != 0)
- {
- rtn = -1;
- MessageBox.Show(System.Text.Encoding.Default.GetString(rin));
- return rtn;
- }
- rtb_Record.AppendText("ReadCardBas读社保卡信息-结束【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "】" + "\n");
- Instr = System.Text.Encoding.Default.GetString(rin);
- outstr = System.Text.Encoding.Default.GetString(rout);
- }
- catch (Exception e)
- {
- rtn = -1;
- MessageBox.Show(e.Message);
- }
- return rtn;
- }
- public int ReadCardBas(int iType, out string sOutInfo)
- {
- sOutInfo = "";
- int rtn = -1;
- try
- {
- StringBuilder bOutInfo = new StringBuilder(1024);
- rtn = ReadCardBas(iType, bOutInfo);
- sOutInfo = bOutInfo.ToString();
- return rtn;
- }
- catch (Exception ex)
- {
- sOutInfo = "ReadCardBas异常:" + ex.Message;
- return rtn;
- }
- finally
- {
- //Global.writeLog("调用社保卡ReadCardBas函数:", sDevInfo, sOutInfo);
- }
- }
- public int ReadCardBas_HSM_Step1(int iType, out string sOutInfo)
- {
- sOutInfo = "";
- int rtn = -1;
- try
- {
- StringBuilder bOutInfo = new StringBuilder(4096);
- rtn = ReadCardBas_HSM_Step1(iType, bOutInfo);
- sOutInfo = bOutInfo.ToString();
- return rtn;
- }
- catch (Exception ex)
- {
- sOutInfo = "ReadCardBas_HSM_Step1异常:" + ex.Message;
- return rtn;
- }
- finally
- {
- //writeLog("调用社保卡ReadCardBas_HSM_Step1函数:", iType + "|" + sDevInfo, sOutInfo);
- }
- }
- public int ReadCardBas_HSM_Step2(string pKey, out string sOutInfo)
- {
- sOutInfo = "";
- int rtn = -1;
- try
- {
- StringBuilder bPKey = new StringBuilder(pKey);
- StringBuilder bOutInfo = new StringBuilder(1024);
- rtn = ReadCardBas_HSM_Step2(bPKey, bOutInfo);
- sOutInfo = bOutInfo.ToString();
- return rtn;
- }
- catch (Exception ex)
- {
- sOutInfo = "ReadCardBas_HSM_Step2异常:" + ex.Message;
- return rtn;
- }
- finally
- {
- //writeLog("调用社保卡ReadCardBas_HSM_Step2函数:", pKey, sOutInfo);
- }
- }
- public frmReadCard_CC()
- {
- InitializeComponent();
- }
- private void btnExit_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- private void AppendText(string type,string input,string output)
- {
- rtb_Record.AppendText(type + "【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "】" + "\n" + input + "\n" + output + "\n");
- }
- private void btnRead_Click(object sender, EventArgs e)
- {
- string pCardinfo = "";
- string pBusCardinfo = "";
- rtb_Record.Text = "";
- AppendText("ReadCardBas", "", "");
- if (readCard(out pCardinfo, out pBusCardinfo) != 0)
- {
- outParam = "社保卡读卡异常ReadCardBas:" + pCardinfo;
- MessageBox.Show(outParam);
- return;
- }
- else
- {
- AppendText("ReadCardBas", "【pCardinfo】" + pCardinfo, "【pBusCardinfo】" +pBusCardinfo);
- }
- }
- private void btnInit_Click(object sender, EventArgs e)
- {
- AppendText("医保读卡-init-开始", "", "");
- string str = "{\"IP\":\"ddjk.jlhs.gov.cn\",\"PORT\":20215,\"TIMEOUT\":60,\"LOG_PATH\":\"C:/neu_log/\",\"SFZ_DRIVER_TYPE\":1}";
- byte[] input = System.Text.Encoding.Default.GetBytes(str);
- byte[] output = new byte[300];
- if (Init(input, output) != 0)
- {
- MessageBox.Show("调用Init初始化返回失败!");
- return;
- }
- AppendText("医保读卡-init-结束","","");
- }
- private void btnReadCardBas_Click(object sender, EventArgs e)
- {
- byte[] rin = new byte[500];
- byte[] rout = new byte[500];
- AppendText("ReadCardBas-开始","","");
- if (ReadCardBas(rin, rout) != 0)
- {
- MessageBox.Show(System.Text.Encoding.Default.GetString(rin));
- return;
- }
- string Instr = System.Text.Encoding.Default.GetString(rin);
- string outstr = System.Text.Encoding.Default.GetString(rout);
- AppendText("ReadCardBas-结束", "Instr:" + Instr, "outstr:" + outstr);
- }
- private void btn_ReadCardBas_HSM_Step1_Click(object sender, EventArgs e)
- {
- outParam = "";
- AppendText("ReadCardBas_HSM_Step1-开始", "", outParam);
- ReadCardBas_HSM_Step1(4, out outParam);
- AppendText("ReadCardBas_HSM_Step1-结束", "", outParam);
- }
- private void btn_ReadCardBas_HSM_Step2_Click(object sender, EventArgs e)
- {
- outParam = "";
- }
- private void btn_iReadCardBas_Click(object sender, EventArgs e)
- {
- AppendText("ReadCardBas-开始", "", outParam);
- ReadCardBas(4, out outParam);
- AppendText("ReadCardBas-结束", "", outParam);
- }
- }
- }
|