吵吵   2015-04-18  阅读:1,467

那天登陆微信的公众账号平台,发现微信更新了9大接口的功能,其中就包括了客服接口。什么是客服接口呢,我们可以理解为延迟发送消息,就是说用户发送了一条消息给你,你可以不用立即回复,在48小时内都可以发送消息给用户。

那么,这个技术就为报告查询提供了一个很好的延迟解决方案,为什么这么说,当用户提交一个报告查询请求的时候,由于检验服务器多数在局域网的内网,因此,没有办法直接查询到结果,你只能把报告查询请求记录下来,然后通过内外网的网闸进行通讯,查询到结果后,再发送给用户。

只要我能在48小时内,把报告查询到,并返回给用户就OK了。

一、微信接口

微信接口看似很强大,但是从技术上来说,还是比较low的,仅仅就是通过post或者get的http协议进行数据的传输和转发,而传输的格式多是xml或者jason的,最基本的消息接收和发送的接口就是post一个xml格式的文件,而且加密等等都是后来才做的。但是后来的js SDK等等又改变了很多,可见一直在进步。

为什么会说这个技术比较low,因为如果单纯是http协议,如果用传统的http服务器比如apache或者IIS这类,然后再写入到数据库,那么将是一个非常耗时的过程,这么上亿的连接与数据通过http协议来传输,个人感觉这速度太慢。

当然,我们兴许只是看到表层,也许腾讯在接口方面,早就抛弃了传统的HTTP服务器,自己重新写了一遍消息的解析和存储的接口,那么从效率上来讲因该会好多了,如果HTTP消息通过分布式的系统如Storm来解析和存储,那么上亿的消息又如何。

扯远了,蛋疼的是服务号要用到组织机构代码证进行注册,所以我没有办法,只能够先用普通的消息接口来实现一下,但是至少实现了,就可以了,以后再研究客服接口吧。

二、实现流程。

1、HTTP服务器一台,用于测试,吵吵就用自己的博客玩了。

2、用户发送病人的ID号,微信接口会将该内容Post到你设定的微信接口即我的博客上来。

3、我博客建立一个新的数据库,建立一个新的记录表,接受到了ID号后做如下的判断:

A)如果五分钟内没有该用户的查询记录,则再次写入查询的记录,把用户名和病人ID号都写入该记录表。注:为什么要五分钟呢,为了延缓服务器的压力,让病人别这么频繁的查询,当然视情况而定,一分钟等都可以。
B)如果五分中内有该用户的查询记录,先判断该记录是否返回了查询结果,如果有查询结果,则将查询的结果返回给用户,如果没有查询结果呢,提示用户正在查询中。

4、博客同时要建立两个接口,一个接口以xml格式呈现用户的查询记录,用于我们内外网的那个查询程序获取查询请求。另外一个接口接受Post过来的查询结果。

5、用C#写一个查询程序,该程序通过网闸跨过内外网,将从博客查询到的请求提交到数据库查询后将结果Post回博客的返回结果的接口。因此该程序就必须24小时不间断的运行,做一个数据的搬运工。

到此也算基本实现了该接口的流程了,但是目前还是有一个问题,就是ID号要提交两遍才能看到结果,等用上了客服接口就好办多了,查询到结果就直接通过客服接口给用户发送消息了。

三、那么做完后你该说,那么接口呢,给我瞧瞧,我只能告诉你,内部使用暂不公开,为嘛?你去问体制去,太TM蛋疼了。
微信检验报告查询

话说如果微信查询检验报告OK了,那么检验报告的最佳的打开方式是图片?就像长微博那样?你怎么看?

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

发表评论

电子邮件地址不会被公开。 必填项已用*标注