前言,最近学习调用 浙江省一卡通业务,主要就是调用一个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); }
}

三 ,测试调用结果。

能读到卡号,就成功了。

浙江省“一卡通”异地就医,C#调用省一卡通动态库的更多相关文章

  1. 关于C#调用非托管动态库方式的性能疑问

    最近的项目中,因为一些原因,需要C#调用非托管(这里为C++)的动态库.网上喜闻乐见的方式是采用静态(DllImport)方式进行调用.偶然在园子里看到可以用动态(LoadLibrary,GetPro ...

  2. C#调用C/C++动态库 封送结构体,结构体数组

    一. 结构体的传递 #define JNAAPI extern "C" __declspec(dllexport) // C方式导出函数 typedef struct { int ...

  3. Android NDK开发及调用标准linux动态库.so文件

    源:Android NDK开发及调用标准linux动态库.so文件 预备知识及环境搭建 1.NDK(native development Kit)原生开发工具包,用来快速开发C.C++动态库,并能自动 ...

  4. linux c编程调用系统的动态库时,要使用dlopen等函数吗?

    同问 linux c编程调用系统的动态库时,要使用dlopen等函数吗? 2012-11-27 21:55 提问者: hnwlxyzhl 我来帮他解答 满意回答 2012-12-07 09:08 li ...

  5. C#调用C/C++动态库,封装各种复杂结构体

    C#调用C/C++动态库,封装各种复杂结构体. 标签: c++结构内存typedefc# 2014-07-05 12:10 6571人阅读 评论(1) 收藏 举报  分类: C(8)  C#(6)  ...

  6. cpp调用c的动态库

    目录 cpp调用c的动态库 title: cpp调用c的动态库 date: 2019/11/22 20:34:29 toc: true --- cpp调用c的动态库 CPP文件里这么引用头文件即可 e ...

  7. C# 调用其他的动态库开发应注意的问题

    1.背景 程序开发语言可以说是五花八门,这就引出了一个新问题 ,不同语言开发的系统进行对接时相关调用的问题. 下面我主要说一下我自己在做接口开发时遇到的问题及解决方法仅供参考,我使用的C#开发进行对接 ...

  8. C#调用C/C++动态库 封送结构体,结构体数组

    因为实验室图像处理的算法都是在OpenCV下写的,还有就是导航的算法也是用C++写的,然后界面部分要求在C#下写,所以不管是Socket通信,还是调用OpenCV的DLL模块,都设计到了C#和C++数 ...

  9. 关于Android NDK中调用第三方的动态库

    因为最近在整合Android 上RTSP播放器的网络库,因需要调用自己编译的网络库,调用一直出现问题,开始时是直接在Android.mk 中加入LOCAL_SHARED_LIBRARIES := li ...

随机推荐

  1. github如何添加新的分支

    需求:甲建立分支分给乙步骤:在甲创建的项目仓库里边点右上角的按钮 就可以通过名字搜索了. 在乙的右上角 再选中Repositories就可以看到所有的 存储库 了

  2. 【UOJ #351】新年的叶子(树的直径,期望)

    题目链接 这的确是一道好题,我们不妨依循思路一步步推导,看问题是如何被解决的. 做一些约定,设$m$为树的叶子节点个数,设$len$为该树的直径(经过的点数). 毫无疑问,直径可能有多条,我们需要把所 ...

  3. MySQL数据库以及表的管理

    MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...

  4. python获取指定目录下所有文件名os.walk和os.listdir

    python获取指定目录下所有文件名os.walk和os.listdir 觉得有用的话,欢迎一起讨论相互学习~Follow Me os.walk 返回指定路径下所有文件和子文件夹中所有文件列表 其中文 ...

  5. js调试系列: 控制台命令行API

    js调试系列目录: - 上次初步介绍了什么是控制台,以及简单的 console.log 输出信息.最后还有两个小问题,我们就当回顾,来看下怎么操作吧. 先打开百度,然后按 F12 打开后,如果不是 C ...

  6. C++的Enum hack

    从一个例子开始吧 class Game { private: static const int GameTurn = 10; int scores[GameTurn]; }; 对于支持类内初始化的C+ ...

  7. java学习第04天(语句、函数、数组)

    (3)循环结构 格式: for(初始化表达式,循环条件表达式,循环后的操作变大时){ 执行语句,循环体: } 注: a. for循环里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真 ...

  8. 洛谷 P1603 斯诺登的密码

    我一开始还没看懂非正规数字的意义,以为那里写的单词不算,蒙了好久,而且这题非常考验仔细程度,一不小心就RE,WA. 嗯,好像讲了些废话,那我们看看思路,我的做法和前面的大佬们有些不同,因为这题只有六个 ...

  9. 记webpack下提取公共js代码的方法

    环境: webpack4.6 + html-webpack-plugin 多页面多入口 经多次研究,稍微靠谱可用的配置 optimization: { splitChunks: { minSize: ...

  10. 前端学PHP之正则表达式函数

    前面的话 正则表达式不能独立使用,它只是一种用来定义字符串的规则模式,必须在相应的正则表达式函数中应用,才能实现对字符串的匹配.查找.替换及分割等操作.前面介绍了正则表达式的基础语法,本文将详细介绍正 ...