1. 说明
此文档仅适用于新美大侧对接乐车邦保养项目时使用
2. 有效期
至2017-03-30
3. 接口说明
3.1 接口地址说明
地址前缀:
生产:https://m.lechebang.com/gateway/partner_json/{method}/1618
测试:https://m.lechebang.cn/gateway/partner_json/{method}/1618
其中method是接口名
3.2 接口列表
接口名称 | 说明 | 幂等性 |
---|---|---|
cancelOrder | 取消订单(支付前) | Y |
paymentNotify | 同步支付结果 | Y |
applyRefund | 申请退款 | Y |
refundNotify | 同步退款结果 | Y |
notifyReview | 同步订单点评 | Y |
3.3 安全认证
乐车邦方通过对请求(JSON格式)进行签名验证的方式来保证接口的安全性(返回无签名),具体的签名算法为:
- 在请求参数列表中,除去sign字段外,其他(根结点)需要使用到的参数皆是要签名的参数。
- 对JSON根结点的每一个属性按属性名从0~9, a~z的顺序排序,若遇到相同首字母,则看第二个字母,以此类推。
- 排序完成之后,再把所有属性名与值用“=”组成键值对,以“&”字符连接起来。这串字符串便是待签名字符串。
例如对下面的请求参数
{appCode:100, timestamp: 1338886946, sign:” 6e8ccf3e7fb18ead4bfd9f41078fd52b”, cityId:10101}
待签名字符串为:
appCode=100&cityId=10101×tamp=1338886946 - 在待签名字符串末尾加上签名用的secret值,密钥secret由乐车邦提供(测试使用参照附录)。
示例:secret值为“vWdg5jw9BTmLk6S0wsYL”,原待签名字符串为:appCode=100&cityId=10101×tamp=1338886946
追加secret后得到:
appCode=100&cityId=10101×tamp=1338886946vWdg5jw9BTmLk6S0wsYL - 进行md5运算,运算结果做uppercase大写化操作,最终得到签名。
对接方可以下载签名工具来计算和自测签名,在联调测试过程中也可能用到。
3.4 请求和返回
3.4.1 请求格式
乐车邦接口请求由appCode,时间戳,签名,和其他业务参数四个部分组成:
{
"appCode":1618,
"timestamp":1488524179,
"sign":"3EBAAA2CB74D32DFB422C32829C11813",
//其他参数
}
新美大的appCode为: 1618
timestamp (时间戳)为服务器发出请求的时间,误差正负 5 分钟。
3.4.2 返回格式
{
"costTime":15,
"msg":"ok",
"result":{},
"resultCode":"200",
"statusCode":"200",
"validationErrors":null
}
其中:
字段 | 说明 |
---|---|
statusCode | 状态码,见附录错误码 |
msg | 错误消息 |
result | 当返回中有业务数据时,数据置于result字段中 |
4. 接口设计
4.1 取消订单(支付前) cancelOrder
业务请求参数
参数名 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
orderId | String | Y | 乐车邦订单ID |
调用示例
Request:
{
"appCode":1618,
"orderId":"XXX1000",
"timestamp":1488449177,
"sign":"BEBB7C326A040AD1CE9327D720699453"
}
Response:
{
"costTime":1380,
"msg":"ok",
"result": {},
"resultCode":"200",
"statusCode":"200",
"validationErrors":null
}
4.2 同步支付结果 paymentNotify
业务请求参数
参数名 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
orderId | String | Y | 乐车邦订单ID |
payResult | int | Y | 支付结果, 1:成功, 2:失败 |
payPrice | String | N | 用户实付金额 |
dpPromoPrice | String | N | 点评的优惠价格 |
调用示例
Request:
{
"appCode":1618,
"orderId":"XXXX1000",
"payResult":1,
"payPrice":200,
"dpPromoPrice":6,
"timestamp":1488506049,
"sign":"AAB48C53E09D1D4911ACB886094099AC"
}
Response:
{
"costTime":14,
"msg":"ok",
"result": {},
"resultCode":"200",
"statusCode":"200",
"validationErrors":null
}
4.3 申请退款 applyRefund
业务请求参数
参数名 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
orderId | String | Y | 乐车邦订单ID |
调用示例
Request:
{
"appCode":1618,
"orderId":"XXX0001",
"timestamp":1488508664,
"sign":"5E398CA68254B0B14CDC1594109EA213"
}
Response:
{
"costTime":13,
"msg":"ok",
"result": {},
"resultCode":"200",
"statusCode":"200",
"validationErrors":null
}
4.4 同步退款结果 refundNotify
业务请求参数
参数名 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
orderId | String | Y | 乐车邦订单ID |
refundResult | int | Y | 退款结果,1:退款成功, 2:退款失败 |
调用示例
Request:
{
"appCode":1618,
"orderId":"XXX0001",
"refundResult":1,
"timestamp":1488508881,
"sign":"942A939E7D3EAE3FFBF59AFF66FF1FB4"
}
Response:
{
"costTime":11,
"msg":"ok",
"result": {},
"resultCode":"200",
"statusCode":"200",
"validationErrors":null
}
4.5 同步订单点评 notifyReview
业务请求参数
参数名 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
orderId | String | Y | 乐车邦订单ID |
star | int | Y | 点评星级,区间[1~5]:1~5级 |
reviewBody | String | Y | 点评内容 |
调用示例
Request:
{
"appCode":1618,
"orderId":"XXX001",
"star":4,
"reviewBody":"a good shop!",
"timestamp":1488509130,
"sign":"1A7DC6B1BCDB9B8D94A320918704CD8E"
}
Response:
{
"costTime":17,
"msg":"ok",
"result": {},
"resultCode":"200",
"statusCode":"200",
"validationErrors":null
}
5. 附录
5.1 statusCode返回状态码
状态码(statusCode) | 说明 |
---|---|
200 | 成功 |
501 | 参数非法或逻辑校验失败 |
注意:其他状态码待补充
5.2 新美大密钥
测试:联系乐车邦开发获取
生产:联系乐车邦开发获取