一、前言

基本上系统都会涉及与外部系统的交互,不论数据、或者业务上,这就涉及到 SDK 接口开发,假设接口由您来设计并开发,那么如何保证整个流程的对接、安全性又如何保证呢?ok,开始今天的学习。

(一)SDK 介绍

SDK 即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。

摊牌了,不装了,直接上设计的模拟详细的对接流程图

(二)SDK 对接流程图

看完之后,您是否基本上对 SDK 的整个两端流程已经有了大致的了解了呢?

二、SDK 接口安全

接口安全,这是 SDK 开发者最担心的问题了,毕竟 SDK 平台如果是暴露互联网,安全不考虑,平台坐着等着瘫痪吧,作为 SDK 设计及开发者,大家肯定会问:

  • 您的接口安全吗?
  • 您的接口数据传输安全,会不会数据泄露?业务数据会不会篡改?
  • 您的接口时效性如何保证?

基于以上的灵魂拷问,咱们就来好好设计下 SDK ,废话不说往下走。

  • 接口安全采用非对称的加密算法 RSA 进行签名,保证接口的完整性安全。
  • 接口数据安全采用对称加密算法 AES 对业务数据进行加密,密文传输。
  • 时效性采用每次请求时间戳保证接口的有效请求。

(一)签名算法

签名流程:
1.对参与AES加密的业务参数数据序列化为JSON字符串,然后对其进行AES加密。得到data参数。
【AES加密模式:CBC 填充:PKCS7 数据块:128位 输出:base64 字符集:UTF-8】
2.然后对非code、msg、sign、可空字段空值以外的所有参数字母ASCII码排序“&”连接,进行RSA签名,得到sign参数。

注:data、sign需要url编码后传输。

在返回结构的状态属于200时,再进行验签流程。
验签流程:
先对返回结果进行RSA验签,得到AES密文,先根据接口版本号,时间戳验证接口有效性、时效性,再对AES密文进行解密,得到返回明文业务数据JSON字符串。

注:data、sign需要url解码

三、工具

工欲善其事,必先利其器

站在巨人的肩膀上做事。

  • RSA 公私钥生成工具。

    • 采用 OpenSsl 工具生成 RSA 公私钥。
    • 【推荐】蚂蚁金服也基于 OpenSsl 二次封装好的 RSA 公私钥生成工具,下载地址:https://docs.open.alipay.com/291/106097/。

小白de架构哲学 - SDK接口设计对接流程相关推荐

  1. 淘宝/天猫关键词搜索采集接口分析商品价格走势(商品列表,商品销量,商品价格,分类ID采集精准商品数据)接口代码对接流程

    淘宝/天猫关键词搜索采集接口分析商品价格走势(商品列表,商品销量,商品价格)接口代码对接流程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String ...

  2. 淘宝关键词搜索采集商品价格销量接口分析商品价格走势(商品列表接口,商品销量接口,商品价格接口,分类ID采集精准商品数据接口)接口代码对接流程

    淘宝关键词搜索采集商品价格销量接口分析商品价格走势(商品列表接口,商品销量接口,商品价格接口,分类ID采集精准商品数据接口)接口代码对接流程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程w ...

  3. 网易实战分享|云信IM SDK接口设计实践

    引语 IM (Instant Messaging)是网络上最流行的通信方式,与日常生活息息相关.IM软件也层出不穷,例如:微信.QQ.易信等.通过多年深耕和技术沉淀,云信产出了一套成熟稳定的IM SD ...

  4. ajax调用外域接口不进回调函数_网易实战分享云信IM SDK接口设计实践

    文|陈吉力 网易智慧企业高级Android开发工程师 对外接口的设计准则 SDK对外提供接口设计的基本原则是易用,易懂,易扩展,易监控.展开来可归纳为以下几个特性: 1. API按照业务功能分类,但所 ...

  5. App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点

    1. 争取相容性和统一性 这里就要求让API设计得是可预测的.按照这种方式写出所有接口和接口所需要的参数.现在就要确保命名是一致的,接口所需的参数顺序也是一致的.你现在应该有products,orde ...

  6. 话费充值api接口,对接流程

    话费充值接口文档 接口版本:1.0 ―.引言 文档概述 本文档提供话费充值接口规范说明,提供一整套的完整的接入示例(http 接口)供商户参 考,可以帮助商户开发人员快速完成接口开发与联调,实现与话费 ...

  7. SDK设计心得之接口设计

    由于SDK的特殊性,所以对于SDK的开发来说,一开始对于SDK的一些通用的整体的元素的设计至关重要.因为SDK(尤其很多平台SDK,使用的应用成百上千)一个及其细微的调整都会影响很多开发者的版本周期. ...

  8. php后台对接ios,安卓,API接口设计和实践完全攻略,涨薪必备技能

    2016年12月29日13:45:27  关于接口设计要说的东西很多,可能写一个系列都可以,vsd图都得画很多张,但是由于个人时间和精力有限,所有有些东西后面再补充 说道接口设计第一反应就是restf ...

  9. 聚播微信群控云控引擎二次开发SDK服务端对接接口

    聚播微信群控云控引擎二次开发SDK服务端对接接口 case HeartBeatReq: {// 客户端发送的心跳包heartBeatReqHandler.handleMsg(ctx, msgVo);b ...

最新文章

  1. 增加了一行代码,让我们提高了3000%的性能
  2. 隐藏在管理员登录页面的危险
  3. 初次尝试使用IDAPro修改程序控制流程
  4. 如何在html中添加选择列表,html – 如何在选择列表中添加图像
  5. 吴恩达 coursera ML 第八课总结+作业答案
  6. JZOJ 5402. 【NOIP2017提高A组模拟10.8】God Knows
  7. Package require os(darwin) not compatible with your platform(win32)
  8. css复选框如何调大一些,创建CSS放大复选框
  9. AIX双机调整DB2配置
  10. Linux 金字塔 的shell命令,shell脚本编程设计——根据输入的数输出菱形、三角形或者数字金字塔(带闪烁颜色)...
  11. 【React 】基于Antd Design的RadioGroup按钮组控件封装
  12. excel常用快捷键汇总
  13. 度分秒转度数和度数转度分秒
  14. Android源码分析(十三)----SystemUI下拉状态栏如何添加快捷开关
  15. OneZero第一次会议(非正式)
  16. 腾讯视频 Node.js 服务是如何支撑国庆阅兵直播高并发的?
  17. 点在多边形内算法,JS判断一个点是否在一个复杂多边形的内部
  18. WordPress批量修改数据库内文章内容文字关键字标题
  19. 我们离成为C++、C#、MySQL之父有多远?
  20. [面试日记] 1,时隔五年再次开始面试

热门文章

  1. 经济欠发达地区教育城域网建设模式选择与行动策略研究
  2. 基于asp.net的三层架构美食信息在线分享网站mvc
  3. 自动驾驶争得CES 2018头彩:百度Apollo2.0试乘,Lyft干脆直接提供自动驾驶出租车! | 焦点
  4. 电脑坏了--关于联想笔记本声卡驱动
  5. 资料分析思维导图模板
  6. 2012-2020年全国大学生数学建模竞赛的国家一等奖论文
  7. popcap sexyframework - Demo1 基本框架
  8. C语言·输入身份证号码,给出年月日。
  9. 2023进销存财务软件哪个好?哪些适合中小商户使用?
  10. 基于matlab的数字下变频器的设计与仿真应用,基于matlab的简单数字下变频器的设计...