# 基础说明
接口协议 除非特殊指定,默认请求方式均为 HTTPS/POST 方式。
返回数据格式 除非特殊指定,默认返回数据格式均为 JSON 格式。
字符编码 除非特殊指定,默认字符编码均为 UTF-8 编码格式。
请求格式 接口内如果没有特殊说明的,请求格式一律统一为 application/json 。
重试机制 调⽤出行服务接口时,返回码 Code 不成功,要有重试机制(具体见错误码表)。
通用参数
| 字段名 | 字段类型 | 最大长度 | 必填 | 说明 |
|---|---|---|---|---|
| api_key | string | 32 | 是 | 腾讯出行服务分配给服务商调用api_key |
| seq_id | string | 36 | 是 | 请求流水号,调用方自动生成一个随机ID,建议使用uuid |
| timestamp | int | 11 | 是 | 请求发送时的时间戳(unix时间戳) 秒 |
| nonce | string | 10 | 是 | 10位随机字符串 |
| sign | string | 32 | 是 | 验证签名参数 |
- 通用返回值
| 字段名 | 字段类型 | 最大长度 | 必填 | 说明 |
|---|---|---|---|---|
| code | int | 11 | 是 | 服务响应状态,参见错误码表 |
| message | string | 64 | 是 | 服务响应状态说明,参见错误码表 |
| data | object | - | 否 | 具体的接口对应不同的对象详见具体的接口 |
鉴权说明
步骤 1 从请求串中获得 api_key、seq_id、timestamp, nonce 通用字段以及其他的业务段和鉴权结果字段 sign。
步骤 2 根据签名算法,对参与签名的内容进行签名; 按照除 sign 外参数名称排序(字典升序排列)成”key1=value1&key2=value2&....”的原始字符串 src1;参数值为 null 不参与签名。 将原始字符串+分配给调用方的 api_sercret 形成字符串 src2; 将 src2 进行 md5 后转成大写形成签名内容 dest
步骤 3 将步骤 2 中得到的签名内容 dest 与请求中的 sign 字段内容做比较,如果相同则验证成功,否则判定请求非法。
举例: 假设/user/sync 接口文档中业务字段为[slon, slat],分配的 api_sercret= DZaslH9B9ycqRrE77laCPB2Om, 请求参数如下: api_key=PSUBZLHOKUO6HV52A5CAUSSE5KSB6Y, seq_id=b8b4f0b8-01fb-4c06-80b9-3ab895a8c616, timestamp=1554695343, slat=39.998299, slon=116.285561 则需要签名的内容: api_key=PSUBZLHOKUO6HV52A5CAUSSE5KSB6Y&seq_id=b8b4f0b8-01fb-4c06-80b9-3ab895a8c616&slat=39.998299&slon=116.285561×tamp=1554695343DZaslH9B9ycqRrE77laCPB2Om
步骤 4 计算的 MD5 值为 8a983278e5366eb93feb0d4143e1c522,大写值为 8A983278E5366EB93FEB0D4143E1C522。
步骤 5 将步骤 4 中得到的 MD5 值,与请求中 sign 字段的值比较。两者相同请求合法。
注意事项
1、需要签名的字段与请求串中字段先后顺序没有关系,只与进行签名的内容有关,必须按照文档中的顺序拼接。
2、api_sercret 内容为双方保密内容,不在请求中传输,严禁公开。
3、通用字段 api_key,seq_id,timestamp,nonce 参与所有接口的签名。
4、字段值是 JSON 的类型,把字段值 json 串参与签名, 不用拆分里面字段。服务环境
服务正式环境 https://sp.wecar.map.qq.com/open/v1/
服务测试环境 https://test.tai.qq.com/open/v1/
# 错误码表
| code | message | 原因 | 备注 |
|---|---|---|---|
| 0 | 成功 | - | - |
| -1 | 服务错误 | - | 服务商重试调用 |
| 1001 | 参数错误 | - | 服务商检查参数,重试调用 |
| 1002 | 鉴权错误 | - | 服务商检查参数,重试调用 |
| 1003 | api_key 不合法 | - | 服务商检查参数,重试调用 |
| 1004 | 手机号不合法 | - | 服务商检查参数,重试调用 |
| 1005 | 身份证号不合法 | - | 服务商检查参数,重试调用 |
| 1006 | 性别不合法 | - | 服务商检查参数,重试调用 |
| 1007 | 车牌号不合法 | - | 服务商检查参数,重试调用 |
| 1008 | 注册日期不合法 | - | 服务商检查参数,重试调用 |
| 1009 | 发证日期不合法 | - | 服务商检查参数,重试调用 |
| 1010 | 使用性质不合法 | - | 服务商检查参数,重试调用 |
| 1011 | 车辆类型不合法 | - | 服务商检查参数,重试调用 |
| 1012 | 初次领取日期不合法 | - | 服务商检查参数,重试调用 |
| 1013 | 有效开始日期不合法 | - | 服务商检查参数,重试调用 |
| 1014 | 有效截止日期不合法 | - | 服务商检查参数,重试调用 |
| 1015 | 商品价格不合法 | - | 服务商检查参数,重试调用 |
| 1016 | 订单费用不合法 | - | 服务商检查参数,重试调用 |
| 1050 | 页码不合法 | - | 服务商检查参数,重试调用 |
| 1051 | 页大小不合法 | - | 服务商检查参数,重试调用 |
| 1052 | 时间范围不合法 | - | 服务商检查参数,重试调用 |
| 1053 | 融合车型不合法 | - | 服务商检查参数,重试调用 |
| 1054 | 车信息服务异常 | - | 服务商检查参数,重试调用 |
| 1055 | 时间戳不合法 | - | 服务商检查参数,重试调用 |
| 1056 | 融合车型信息数量不合法 | - | 服务商检查参数,重试调用 |
| 2000 | 非法操作 | - | 服务商检查参数,重试调用 |
| 2001 | 批次不存在 | - | 服务商检查参数,重试调用 |
| 2002 | 批次未开始 | - | 服务商检查参数,重试调用 |
| 2003 | 批次已结束 | - | 服务商检查参数,重试调用 |
| 2004 | 领券记录不存在 | - | 服务商检查参数,重试调用 |
| 2005 | 用户领券数量到达上限 | - | 适用于领券接口 |
| 2006 | 批次暂无库存 | - | 适用于领券接口 |
| 2301 | 省钱卡有效时间超过上限 | - | 当前时间无法给该用户发放省钱卡 |
| 2302 | 无省钱卡库存 | - | 充值购买,重试调用 |
| 2303 | 已经发放成功 | - | 无需重试 |
# 账号同步
接入方根据插件中传入的 openId 作为用户唯一标识,并在系统中建立关联关系; 如接入方原系统中使用手机号做唯一标识,则根据插件中传入的 openId 和 mobile 进行融合关联用户; openId 相对用户固定不变,mobile 可能会变更。
# 数据解密
接口说明 本接口用于小程序参数明文获取。
请求地址 /param/decode
请求方式 POST
请求参数 通用参数 + 业务参数
| 参数名称 | 类型 | 最大长度 | 必选 | 说明 |
|---|---|---|---|---|
| encrypt_data | string | - | 是 | 加密数据 |
| encrypt_id | string | 18 | 否 | 加密流水号 |
- 返回数据
| 参数名称 | 类型 | 最大长度 | 必选 | 说明 |
|---|---|---|---|---|
| code | int | 11 | 是 | 服务响应状态,参见错误码表 |
| message | string | 64 | 是 | 服务响应状态说明,参见错误码表 |
| data | object | - | 是 | - |
| json_string | string | - | 是 | 解密后的json字符串 |
- 请求数据示例
{
"encrypt_data": "PSYDQHwWw+0H2l/NFUoLNrnhUFn9Jf0k6nkkZTSAIF8=",
"encrypt_id": "1611844898010850820"
}
- 返回数据示例
{
"code": 0,
"message": "successful",
"data": {
"json_string": "{\"openId\":\"b0b15a758bac280fb110aa8985b1902e\",\"mobile\":\"13800138000\"}"
}
}
打车 →