• 浙江省“一卡通”异地就医,C#调用省一卡通动态库


    前言,最近学习调用 浙江省一卡通业务,主要就是调用一个DLL,动态库文件,这个动态库是浙大网新研发的。
    借着自学的机会把心得体会都记录下来,方便感兴趣的小伙伴学习与讨论。
    内容均系原创,欢迎大家转载分享,但转载的同时别忘了注明作者和原文链接哦。本文内容和图片如果有侵犯您的权利,请联系yisheng163@qq.com。

    一,准备工作。

    准备三个文件,检查网络是否能ping通。业务网址能不能正常打开。

    1,两个动态库和一个配置文件。

    2,网络ping检查:

    3,业务webService能不能正常打开:

    二,C#调用类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    using System.Runtime.InteropServices;
    
    namespace PT.BLL
    {
        /// <summary>
        /// 省一卡通
        /// </summary>
        public class ZJOneCard
        {
            /// <summary>
            /// 初始化函数
            /// </summary>
            [DllImport("YKTMedInterface.dll", EntryPoint = "f_Init", SetLastError = false)]
            public static extern int f_Init(string Data1, string Data2, StringBuilder retMsg);
    
            /// <summary>
            /// 交易函数
            /// 参数:Code用户交易类型代码;HospCode医疗机构编号;Data1传入报文体;Data2预留参数;retMsg返回的信息;
            /// </summary>
            /// <param name="Code">用户交易类型代码</param>
            /// <param name="HospCode">医疗机构编号</param>
            /// <param name="Data1">传入报文体</param>
            /// <param name="Data2">传入接收方行政区划和发送报文ID,中间用单波浪线‘~’分割。
            /// 接收方行政区划:跟机构相关的如对账交易传省平台行政区划‘330000’; 跟参保人业务相关的交易:9201传卡识别码前6位,其余交易传9201参保地返回的参保地行政区划代码;
            /// 发送报文ID:医院端唯一的发送报文ID,必须保证本医院内唯一,后续交易作废需要使用到该ID进行处理。每笔交易的唯一标识,规则:医院编码(12位)+ 顺序号(18);
            /// </param>
            /// <param name="retMsg">返回的信息</param>
            /// <returns></returns>
            [DllImport("YKTMedInterface.dll", EntryPoint = "f_UserApply", SetLastError = false)]
            public static extern int f_UserApply(int Code, string HospCode, string Data1, string Data2, StringBuilder retMsg);
    
            /// <summary>
            /// 上传下载类交易
            /// </summary>
            /// <param name="Code"></param>
            /// <param name="HospCode"></param>
            /// <param name="Data1"></param>
            /// <param name="Data2"></param>
            /// <param name="retMsg"></param>
            /// <returns></returns>
            [DllImport("YKTMedInterface.dll", EntryPoint = "f_DataTransApply", SetLastError = false)]
            public static extern int f_DataTransApply(int Code, string HospCode, string Data1, string Data2, StringBuilder retMsg);        
    
            /// <summary>
            /// 关闭函数
            /// </summary>
            [DllImport("YKTMedInterface.dll", EntryPoint = "f_Close", SetLastError = false)]
            public static extern int f_Close(string Data1, string Data2, StringBuilder retMsg);
    
        }
    }

    三 ,测试调用结果。

    能读到卡号,就成功了。

  • 相关阅读:
    链表总结
    源码,反码,补码,位运算
    JAVA打印乘法口诀表
    JAVA打印空三角形
    JAVA打印三角形
    列表,元组,字典,集合类型
    for 循环 ,数字类型,以及字符串类型
    基本运算符补充,流程控制if判断与while循环
    内存管理,数据类型的基本使用与基本运算符(python2中与用户交互)
    编程的分类,以及运行python解释器的原理,最后变量
  • 原文地址:https://www.cnblogs.com/yisheng163/p/8471417.html
Copyright © 2020-2023  润新知