123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- using Newtonsoft.Json;
- using PTMedicalInsurance.Variables;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading.Tasks;
- namespace PTMedicalInsurance.CardReaders
- {
- class NationECCodeAPI
- {
- private string url { get; set; }
- //电子凭证
- [DllImport("NationECCode.dll", EntryPoint = "NationEcTrans", CharSet = CharSet.Ansi, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
- static extern IntPtr NationEcTrans(StringBuilder strUrl, StringBuilder InData, StringBuilder OutData);
- public NationECCodeAPI(string _url)
- {
- url = _url;
- }
- public int NationEcTrans(NationECInput nationECInput, out string output )
- {
- StringBuilder sbURL = new StringBuilder(url);
- StringBuilder sbInput = new StringBuilder(JsonConvert.SerializeObject(nationECInput));
- StringBuilder sbOut = new StringBuilder(40960);
- IntPtr pInt = NationEcTrans(sbURL, sbInput, sbOut);
- output = sbOut.ToString();
- Global.writeLog($"NationEcTrans({url})", JsonConvert.SerializeObject(nationECInput),output);
- string str = Marshal.PtrToStringAnsi(pInt);
- if (str == "0000")
- {
- return 0;
- }
- else
- {
- return -1;
- }
- }
- }
- class NationECInput
- {
- /// <summary>
- /// 机构代码
- /// </summary>
- public string orgId { get; set; }
- /// <summary>
- /// 交易类型
- /// </summary>
- public string transType { get; set; }
- /// <summary>
- /// 请求参数
- /// </summary>
- public NationECData data { get; set; }
- /// <summary>
- /// 扩展参数
- /// </summary>
- public string extra { get; set; }
- }
- class NationECData
- {
- /// <summary>
- /// 医保定点机构代码
- /// </summary>
- public string orgId { get; set; }
- /// <summary>
- /// 用码业务类型
- /// </summary>
- public string businessType { get; set; }
- /// <summary>
- /// 用码业务信息
- /// </summary>
- public string businessInfo { get; set; }
- /// <summary>
- /// 收款员编号
- /// </summary>
- public object operatorId { get; set; }
- /// <summary>
- /// 收款员姓名
- /// </summary>
- public string operatorName { get; set; }
- /// <summary>
- /// 医保科室编号
- /// </summary>
- public string officeId { get; set; }
- /// <summary>
- /// 科室名称
- /// </summary>
- public string officeName { get; set; }
- /// <summary>
- /// 人脸照片 字符 100k
- /// </summary>
- public string photoData { get; set; }
- /// <summary>
- /// 扩展参数
- /// </summary>
- public string extData { get; set; }
- }
- class EcQueryData:NationECData
- {
- /// <summary>
- /// 设备类型
- /// </summary>
- public string deviceType { get; set; }
- }
- class QrcodeGetData : NationECData
- {
- /// <summary>
- /// 定点医药机构本次业务流水号
- /// </summary>
- public string outBizNo { get; set; }
- /// <summary>
- /// 设备类型
- /// </summary>
- public string deviceType { get; set; }
- }
- class AuthCheckData : NationECData
- {
- /// <summary>
- /// 定点医药机构本次业务流水号 不可重复,每次请求都需要唯一
- /// </summary>
- public string outBizNo { get; set; }
- /// <summary>
- /// 实 人 认证 业 务流水号 医保综合服务终端返回的授权码
- /// </summary>
- public string authNo { get; set; }
- /// <summary>
- /// 设备类型
- /// </summary>
- public string deviceType { get; set; }
- }
- }
|