# API调用方法详解

# 请求简介

开放平台的API是基于HTTP协议来调用的,开发者可以直接使用开放平台的协议来封装HTTP请求进行调用, 以下主要是针对自行封装HTTP请求进行API调用的原理进行详细解说。

交互图

# 请求地址

调用API的服务URL地址, 开放平台目前提供如下环境供使用:

环境 https地址
正式环境 https://openapi.smzdm.com

# 公共参数

调用任何一个API都必须传入的参数, 目前支持的公共参数有:

参数名称 参数类型 是否必须 参数描述
app_key String 开放平台分配给应用的AppKey。例:12345678
timestamp String 当前时间的时间戳,格式为UNIX时间(秒)时间戳,开放平台服务端允许误差为10分钟内
sign String API入参参数签名,签名值根据如下算法给出计算过程)

# 业务参数

API调用除了必须包含公共参数外, 如果API本身有业务级的参数也必须传入, 每个API的业务级参数请参考API文档详细描述说明。

# 签名算法

为了防止API调用过程中被恶意篡改, 调用任何一个API都需要携带请求签名, 开放平台服务端会根据请求参数,对签名进行验证,签名不合法的请求将被拒绝。

目前支持的签名算法为: MD5(sign_method=md5), 签名过程如下:

  • 本次请求中所有的请求参数(包括公共参数与业务参数,但除去sign参数)进行首字母以ASCII方式升序排序(ASCII ASC), 对于相同字母,则使用下个字母做二次排序, 字母序为从左到右,以此类推。参数值value为空则过滤此键值对。
  • 排序后的结果按照参数名(key) 参数值(value)的次序进行字符串拼接, 拼接处不包含任何字符。
  • 在拼接完成的字符串的头部及尾部分别拼接app_secret值, 完成签名字符串的组装。
  • 最后对待签名字符串,先用MD5算法加密, 得到的MD5加密密文后转为大写,即为sign值。

# 调用示例

# 一、参数示例

array (
'timestamp' => '1480411125',
'app_key' =>'123456789',
'order_status' => '1',
'page_size' => '10'
'page' => '1',
)
1
2
3
4
5
6
7

# 二、 按首字母升序排列(ASCII ASC)

array (
'app_key' =>'123456789',
'order_status' => '1',
'timestamp' => '1480411125',
'page' => '1',
'page_size' => '10'
)
1
2
3
4
5
6
7

# 三、 拼接字符串

无缝拼接字符串,拼接完成后在头部以及尾部额外拼接上app_secret,假设app_secret值为88888888,则示例签名字符串如下:

88888888app_key123456789order_status1page1page_size10timestamp148041112588888888
1

# 四、 生成签名sign

sigin最终输出为长度32位的大写字符串:

UPPER_CASE(MD5(88888888app_key123456789order_status1page1page_size10timestamp148041112588888888)) 
1

最终输出

27C4D45CE6F51B71493FC2B9AA80DB23
1

# 五、 组装http请求

将所有参数名和参数值采用utf-8进行URL编码(参数顺序可随意,但必须要包括签名参数),然后通过GET或POST发起请求,如:


https://openapi.smzdm.com/haojia/third/list?app_key=123456789&order_status=1&timestamp=1480411125&page=1&page_size=10&sign=27C4D45CE6F51B71493FC2B9AA80DB23

1
2
3

# 注意事项

  • 需要特别注意参数sign签名生成方式。

# 常见平台级错误码

错误码 错误信息 错误原因 解决方案
100070 String 开放平台提供的接口不合法 联系开放平台对接人员
100071 String 接口未授权或已下架 联系开放平台对接人员
100072 String 请求Method不合法 重新查看文档,确认请求是GET,还是POST请求
100078 String 触发限流规则 联系开放平台对接人员
100080 String 接口未授权 联系开放平台对接人员
100110 String 数据解析错误 联系开放平台对接人员
100111 String 缺少app_key参数 重新查询传参
100112 String 数据解析错误 联系开放平台对接人员
100113 String 密钥配置错误 联系开放平台对接人员
100114 String sign或者time字段为空 重新查询传参
100115 String timestamp字段不合法 重新查询传参
100116 String timestamp字段不合法 重新查询传参
100120 String timestamp字段过期 重新查询传参
100130 String 签名校验失败 重新查询传参
最后更新: 8/16/2021, 2:30:37 PM
  • 版权所有 本站内容未经书面许可,禁止一切形式的转载。 © copyright 2010-2020 值得买科技. All rights reserved.
  • 京ICP备12048526号-8 | 违法和不良信息举报电话:4008108106-9 | 违法和不良信息举报邮箱:service@smzdm.com 营业执照 北京市诚信创建企业
  • 公司名称:北京值得买科技股份有限公司 地址:北京市丰台区汽车博物馆东路1号院3号楼32层3701和33层3801 座机:010-56640700