注册 登录
编程论坛 VFP论坛

敬求:NationECCode.dll 如何调用

wcx_cc 发布于 2024-11-05 22:05, 588 次点击
敬求:NationECCode.dll 如何调用,vfp 9.0 调用时无反应
这是医保要求用刷脸设备,通过每个人的刷脸后,获取返回数据(获取返回数据后再进行各类业务报销)
我用如下调用不成功,请版主和高手们帮助看看。先感谢!感谢!
vfp调用:(url 是医保一并下发的网址,cjson 是自己组合的 json 串,作为入参)
 Url = "http://172.16.33.247/localcfc/api/hsecfc/localQrCodeQuery"
 c_json='{"data":[{"businessType":"01203","deviceType":"","officeId":"32760","officeName":"内科",'
 c_json=c_json+'"operatorId":"001","operatorName":"郑医生","orgId":"35020319001"}],"orgId":"35020319001","transType":"ec.query"}'
 Declare Integer NationEcTrans In NationECCode.dll string,string
 ?NationEcTrans(@url,@cjson) && 返回的是 1701404 这7个数字,不是想要的数据
 ***********

有C#调用示例,是医保一并下发的文档内的实例
[DllImport("NationECCode.dll", CallingConvention = CallingConvention.StdCall)]
public static extern void NationEcTrans(string url, string input, IntPtr output);

public static string InOut(string url, string input)
{
    IntPtr outPut = System.Runtime.InteropServices.Marshal.AllocHGlobal(2048);
    NationEcTrans(url, input, outPut);
    string retStr = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(outPut);
    System.Runtime.InteropServices.Marshal.FreeHGlobal(outPut);
    return retStr;
}

static void Main(string[] args)
{
    string toUrl = "http://172.16.33.247/localcfc/api/hsecfc/localQrCodeQuery";
    string inPut = "{\"data\":{\"businessType\":\"01203\",\"deviceType\":\"\",\"officeId \":\"32760\",\"officeName\":\"123\",\"operatorId\":\"test001\",\"operatorName\":\"456\",
\"orgId\":\"35020319001\"},\"orgId\":\"35020319001\",\"transType\":\"ec.query\"}";
    string outPut= InOut(toUrl, inPut);
    Console.WriteLine("出参:"+ outPut);
    Console.Read();
}
   感谢能回复!!

[此贴子已经被作者于2024-11-5 22:13编辑过]

7 回复
#2
iswith2024-11-05 23:21
加我QQ:陆捌2伍69零4,帮你解决!

[此贴子已经被作者于2024-11-5 23:23编辑过]

#3
wcx_cc2024-11-06 00:09
感谢你!没搜索到您的QQ名。请继续帮助一下
#4
csyx2024-11-06 08:45
先这么简单的试试,看能否在 cc 中看到需要的数据, 能成功再来完善它

Declare Integer NationEcTrans In NationECCode.dll string,string, String @
cc = replicate(chr(0), 2048)
? NationEcTrans(url, cjson, @ cc)
? cc

#5
wcx_cc2024-11-06 11:11
谢谢4楼,我测试看看
#6
kangss2024-11-06 12:41
回复 楼主 wcx_cc
4楼讲的对
仔细看:NationEcTrans(url, input, outPut);  这里的参数是 3 个,你的参数:?NationEcTrans(@url,@cjson) 是 2 个

猜测:返回值 > 0 非 0 非负数,估计是执行正确
#7
wcx_cc2024-11-06 21:00
感谢楼上几位热心回复!疏忽了(仍然按了com调用)  今天忙还没有测试,估计这里参数放置是个问题,再测试看看。
#8
wcx_cc7 天前 15:12
感谢楼上各位好友帮助,能获取数据了!
1