zoukankan      html  css  js  c++  java
  • 集成第三方接口的技巧总结

    现在系统中集成越来越显得很重要了,不管是钉钉还是支付宝等等等等,每个系统都集成了多方的接口,而且越来越多系统功能都会集成的越来越多,我们的信息化之网会越铺越大:

    那么调用第三方的接口,使用第三方的api文档有什么技巧吗?

    1、借鉴下别人写一个博客一句话,感觉不错:

    其实调接口很简单,原理和使用数据库的数据差不多,

    我们使用本地数据库的时候是通过: 连接数据库——获取数据(传递参数,获取表中的数据)——返回前端——前端处理(封装返回的数据,前端校验是否成功)这么一个流程,

    调用接口其实也差不多是这样,发送请求(向第三方发送请求,传递参数)——收到数据(收到第三方的返回数据)——数据处理(数据解析)——返回前端——前端处理(前端展示封装数据)。

    通过将SDK方法中返回的数据划分为正常返回数据以及错误返回的数据两部分,让调用者更简单的对接口调用错误进行处理。

    将SDK调用第三方服务接口的流程划分为: 数据准备,http请求,结果处理三部分,以重用代码。

    2、具体操作的一些技巧:

    (1)api文档阅读:主要看请求参数和返回数据,有些文档有很多demo,这些demo会帮助我们很多。

    参考这个内容:http://www.pmcaff.com/discuss/index/480006465919040?pmc_param=1

    为了让更多同学更能看懂这个传说中的API接口文档,我举个栗子,并予以详细描述,其实真的很简单!
    
    首先得明白,任何对外接口,都至少(不仅限)包含两个任务分类:
    讲清楚这个问题:首先分清楚平台:

    三种角色:
    A)互联网公司
    B)终端用户
    C)第三方商家/服务提供者
    平台和非平台的区别在于,用户用的产品/服务/信息,直接由A生产,还是直接或间接由C生产。
    举个例子,印象笔记就是个互联网产品,它由印象笔记开发,归印象笔记所有,用户消费印象笔记提供的产品。
    再举个例子,淘宝就是个平台产品,用户在上面购买的商品和阿里巴巴没有直接关系,是由淘宝上面的C)第三方商家提供的。 淘宝只是为商家提供了这样的场所/系统,引来了顾客。

    还有很多平台类公司,你看不到具象的C,例如赶集,知乎,他们通过聚合普通用户的信息,加工组织,再为普通用户服务。我管他们叫信息平台,也就是通常的UGC平台。
    判定是否为互联网平台主要有一下两个标准:1 是否对商家开放;2 盈利模式是否为分成。从这个意义上讲,微信不算平台,是腾讯公司自营。直播比较接近平台,直播上的帅哥靓妹属于商家性质。


    作者:知乎用户
    链接:https://www.zhihu.com/question/21491868/answer/18825854
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    1> 服务接口:在平台产品中,一般由商户调用,平台负责处理;
    
    2> 通知接口:在平台产品中,一般由平台调用,商户负责处理;
    
    如上,接口的规范包括URL和请求的参数两部分。
    
    在这里,我拿我们支付平台的『短信验证码扣款接口』做个案例,如看不明白的,可以在评论里告知,我会抽时间回复,当然了,妹纸可以私信我,饭不吃,工不做也第一时间回复。// 由于这个涉及到一些内部私密,本人只作一个简要的说明,但作为牛逼如你的PM,应该能看懂的
    
    1、短信验证码扣款接口
    
    1.1 业务流程(描述)
    
    商户在入驻签约我们产品时(代收代付),可以选择是否开通这个服务,并设定这个服务的规则,很显然,商户开通了,并且设定了用户支付时发送短信验证码
    
    商户发起扣款,我们根据商户设定的发送短信限额,如果单笔扣款金额超出短信金额限制,那么会给用户发送一条短信验证码,用户须用短信回复验证码,我们收到后再继续检查验证码并进行扣款
    
    1.2 接口规范
    
    因为涉及到扣用户的资金,原则上是不能的,但这个用户是和银行和我们达成了三方协议,所以有了协议保障,再扣款则无问题
    
    调用接口的流程略,那么到现在,列位看官,这个接口是服务接口还是通知接口呢?
    
    URL:http://www.pmcaff.com/discuss/edit/523163678204992
    
    请求方式:GET
    
    请求参数:(至少包含以下几个字段)
    
    1> 参数名:
    
    2> 参数含义:
    
    3> 格式说明:
    
    4> 是否必须:
    
    WechatIMG949.jpeg
    
    返回值参数
    
    Clipboard Image.png
    
    返回码如下:
    
    图片.png
    
    当这个接口被调用时,先校验这个商户与我们的签名(sign&sign_method)是否OK,为什么需要校验?不是你媳妇,人家能让你牵手吗?
    
    然后把上述的URL带上,再把签名,再把上述4个参数拼接(需要哪些就拼接哪些)在一起,大概样子如下:
    
    URL:http://www.pmcaff.com/discuss/edit/523163678204992?contract_no=201407110000159812&sp_no=135800000001&sign=XXXXXXXXXXXXXXXXXXXX&sign_method=1&total_amount=1
    
    然后会返回一个结果:
    
    {"err":"0","msg":"OK","token":"b0947e3456032b74c5awarfafe8de1bcd55"}
    
    到现在你看懂了吗?然后再回到我第一段里说的,
    
    产品经理在这个环节,需要关注的不是文档本身,而是API文档里包含的字段参数是否符合我方业务诉求
    

      

    (2)json数据解析:net.fs.json还是阿里的fastjson还是jacksondegnd

    具体参考:https://www.cnblogs.com/huoer33/p/6638378.html

    (3)调用第三方使用的工具:Httpclient、urlConnection还是RestTemplate

    具体内容参考:http://blog.csdn.net/lmb55/article/details/70247018

  • 相关阅读:
    geowebcache发布 arcgis 瓦片
    BLANK
    基于 SpringBoot 高仿某度网盘项目,前后端分离(含源码)
    基于SpringBoot+WebMagic实现一个的爬虫框架
    博客园主题
    vue el 自动计算时间加1天
    python报警告qt.gtimg.cn
    量化交易日志
    mybatis 一对多。对多对
    DBeaver执行SQL脚本,导入导出
  • 原文地址:https://www.cnblogs.com/fengli9998/p/8058197.html
Copyright © 2011-2022 走看看