服务器地址
| 测试服务器 | http://test.quanmama.com:7996/ThirdApi/ThirdApiHandler.ashx |
| 线上服务器 | https://app.quanmama.com/ThirdApi/ThirdApiHandler.ashx |
系统参数
调用任何一个API都必须传入的参数:
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| appKey | string | 是 | 券妈妈分配的AppKey,向商务要 |
| apiName | string | 是 | API接口名称,详见各API接口文档 |
| timestamp | string | 是 | UNIX时间戳,单位:秒 |
| version | string | 是 | 版本号,固定为:v1 |
| sign | string | 是 | API输入参数的签名结果,签名算法参照下面的【签名算法】 |
业务参数
API调用除了必须包含系统参数外,如果API本身有业务级的参数也必须传入,每个API的业务级参数请考各自API文档的说明。
签名算法
为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。
签名大体过程如下:
1-API的所有参数按照参数名升序排列
2-把排序后的结果按照 参数名+参数值 的方式拼接
3-拼装好的字符串首尾拼接AppSecret进行md5加密,然后转小写,AppSecret向商务要
特别注意以下重要规则:
◆如果参数值为空,不参与签名
◆参数名区分大小写
◆参数名ASCII码从小到大排序(字典序)
调用示例
1、输入参数为:
array (
'apiName'=> 'qmm.third.user.getDetail',
'appKey' => '2020082401',
'version' => 'v1', 'timestamp' => 1598923065, 'userId' => TestUserId111111,
)
2、按首字母升序排列
array (
'apiName'=> 'qmm.third.user.getDetail',
'appKey' => '2020082401',
'timestamp' => 1598923065,
'userId' => TestUserId111111,
'version' => 'v1',)
连接字符串,并在首尾加上AppSecret,假设AppSecret为3aa3ad800b5e4cf18894bf9a0cdade5c,如下:
3aa3ad800b5e4cf18894bf9a0cdade5capiNameqmm.third.user.getDetailappKey2020082401timestamp1598923065userIdTestUserId111111versionv13aa3ad800b5e4cf18894bf9a0cdade5c
3、生成签名
MD5(3aa3ad800b5e4cf18894bf9a0cdade5capiNameqmm.third.user.getDetailappKey2020082401timestamp1598923065userIdTestUserId111111versionv13aa3ad800b5e4cf18894bf9a0cdade5c)
=a3579445fd093a157c931612203d28c0
4、拼装API请求
{host}/ThirdApi/ThirdApiHandler.ashx?appKey=2020082401&apiName=qmm.third.user.getDetail×tamp=1598923065&sign=a3579445fd093a157c931612203d28c0&version=v1&userId=TestUserId111111
系统级错误码
| 错误码 | 错误描述 | 解决办法 |
|---|---|---|
| 0 | 执行成功 | 执行成功 |
| 100 | 系统参数不全 | 检查是否按照要求传入了系统必需的参数 |
| 101 | API调用超时 | 检查时间戳参数,单位:秒 |
| 102 | 非授权平台 | 检查参数appKey和商务给的appKey是否一致 |
| 103 | 无效签名 | 检查是否按照说明生成的签名 |
| 104 | 非授权接口 | 1.检查参数apiName是否和接口文档中的一致,区分大小写 2.和券妈妈商务确认是否有对应API的调用权限 |
| 105 | 接口调用次数超限 | 调用过于频繁,请调整调用频率 |
| 106 | Api初始化失败 | 向券妈妈商务反馈 |