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

我是韦龙,创业二年了,原来从没有写过程序,只学过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库可以直接解析。

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

图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加菲猫的VFP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值