ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

染厂对接WebAPI,对方嫌弃语言太老,说三个月搞不定,我就不信了

2021-10-21 13:32:58  阅读:201  来源: 互联网

标签:WebAPI 对接 信息 文档 染厂 参数 搞不定 咱们 VFP


我是韦龙,创业二年了,原来从没有写过程序,只学过VFP二级,后来创业之后,重新捡起了VFP.在做染厂ERP软件开发时,需要对接一下第三方的接口,接口是WebApi形式提供的,对方就扔了一份文档和一个POSTMAN的测试,然后其它啥也没有了。想多问一句,对方说不懂,没有。我太难了。你们用的VFP太老了,用这个干啥,扔掉算了。

图片

我试着放到POSTMAN里面运行一下,

图片

得到了正确的返回。

接下来,我看一下文档是怎么写的,第一步其实一定要看文档,像C#,JAVA,PHP等每个语言实现的细节不同,但文档一定是相同的。

接口文档是makedwon格式的,可以用记事本打开。

需要注意的是:

  1 请求域名

  2 要在header里面设置什么参数

  3 签名的生成方法是什么。

图片

打开我们的猫框并运行环境设置

图片

新建一个prg,代码如下

按文档说明书的要求咱们需要把时间戳、平台openkey、平台密钥、授权对接信息、随机的6个字符、要发送请求的json串、生成的签名,这些东西给准备好,本示例平台openkey、平台密钥、授权对接信息这三个信息是对方技术员提供的。

图片

时间戳这里,VFP的时间只有生成整型,长度只有10位,这里是要求13位,这是毫秒,一般补3个0就搞定

利用QiyuHttpClient类的setheader方法,将header的5个参数(文档有写明要传的这5个)写入

模式为POST方法,使用Send将报文内容POST出去,格式是JSON串。

满怀信息,我直接运行看看结果:卧槽居然失败了,屏幕打出了一串看不懂的字符。

图片

返回的错误代码是code:10003,咱们去看下文档,写着是什么原因,从图中可以看到是因为解密失败。经过我的反复对照,参数都没问题呢,怎么回事呢?

图片

再回到postman去看看,有没获得什么关键信息:

图片

咱们可以看到code里面,三个关键的参数,其中是一居然是小写的英文字母,因为BS环境下是要区分大小写的,经过核对,这个参数正是md5加密后生成的东西,现在咱们试试换成小写。

图片

在VFP的prg里面,用lower()函数把md5加密的结果转成小写,

图片

再运行试试,啦啦啦啦,这次成功啦,咱们可以看到返回的是json串;那么咱们能不能把这些信息转成我们熟悉的临时表来操作呢?答案当然是可以的啦。。。。。。。

图片

前后从从来没有学过,到直接搞定,只花了两天时间。狠狠地打了对方的脸。

总结一下:

1、对接的时候,要学会看文档,咱们在发送请求时,需要传哪些参数

2、postman里面的code可以看到请求成功时候的一些关键信息,当有问题时,可以在里面对比一下找到失败的原因

3、VFP也可以做到混合开发。

最后要感谢来自浙江小雨和猫框作者加菲猫的指导,在他们的指导下得以完成这个项目的对接工作。

问题:返回的 json 数据 为:  \u6587\u4ef6\u7ba1\u7406  ,这样的格式的数据 VFP怎么解码啊?

答:\u6587这种写法中,\u表示为unicode编码,后续四位数组为16进制的码值,用FOXJSON库可以直接解析。

最后最后,解决问题开心,就在群里发个红包,社群的兄弟情,就是这样朴实无华。

图片

标签:WebAPI,对接,信息,文档,染厂,参数,搞不定,咱们,VFP
来源: https://blog.csdn.net/fitche/article/details/120869543

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有