Apifox全功能示例
  1. 接口签名功能
Apifox全功能示例
  • 接口签名功能
    • 接口签名如何处理
    • 百度翻译接口签名示例
      GET
    • 微信支付签名(统一下单接口)
      POST
  • 接口加密功能
    • 加密接口示例
      POST
  • 接口之间传递数据
    • 接口之间如何传递数据
    • 示例接口 A
      GET
    • 示例接口 B
      GET
  • 自定义脚本
    • 示例递增参数
      GET
    • 示例修改 body
      POST
    • 自定义脚本中使用 MockJS
      GET
    • 自定义脚本调用下载 js
      GET
    • 示例保存 response 到文件
      GET
    • 调用 python 脚本示例
      GET
  • 动态 URL 定义
    • 接口路径期望不以 / 开头
      GET
  • 功能在哪?
    • 软件版本查看
    • 放大字体大小
  • WebService 接口
    • WebService接口示例
      POST
    • SOAP示例
      POST
    • SOAP/WSDL示例
      POST
  • 接口模型
    • 引用公共模型
      GET
  • 跟随环境的全局参数
    • 跟随环境的全局参数
      GET
  • 可视化响应
    • Radial Tree
    • Scoring board
    • EChart Demo
    • base64图片
  • 通过Query参数区分不同接口
    • 通过Query参数区分不同接口示例
  • URL 编码
    • 前置脚本中替换非法字符
    • 替换变量中的非法字符
  1. 接口签名功能

接口签名如何处理

期望效果#

1.
统一处理,无需每个接口单独处理。

实现思路#

1.
创建一个 公共脚本 实现签名逻辑,读取接口请求参数,然后使用 内置类库,如(crypto-js),生成签名。
2.
将生成的签名 sign 作为参数加入请求,可使用以下两种方案:
方案一:脚本直接修改请求信息,注入一个签名参数,无需使用环境变量。
方案二:将生成的签名写入环境变量,接口设置参数时引用环境变量。
3.
在接口的 前置脚本 里引用前面创建公共脚本。
4.
如果签名算法是其他语言编写的,可使用fox.execute方法 调用其他语言编写的程序

接口签名示例#

签名生成规则#

本签名规则同 微信支付签名算法。
第一步:假设所有发送参数集合M,将集合M内非空参数值的参数按照参数名 ASCII 码从小到大排序(字典序),使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
1.
参数名ASCII码从小到大排序(字典序);
2.
如果参数的值为空不参与签名;
3.
参数名区分大小写;
4.
传送的sign参数不参与签名;
第二步:在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

公共脚本实现#

百度翻译接口签名示例#

本示例为调用百度翻译接口,百度翻译接口参考文档。

签名生成规则#

第一步:将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在管理控制台查看) 按照 appid+q+salt+密钥 的顺序拼接得到字符串1。
第二步:对字符串1做md5,得到32位小写的sign。
注:
1.
待翻译文本(q)需为UTF-8编码
2.
在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode

公共脚本实现#

修改于 2022-10-12 09:31:05
下一页
百度翻译接口签名示例
Built with