# 电驴送-开放平台接口文档

# 1、文档说明

本文档旨在说明商户平台与电驴送平台的整合流程及接口参数概述。

# 2、对接流程

对接流程

# 3、通讯方式

双方通讯使用https方式作为技术通讯协议

# 4、数据安全

为保证网络传输过程中数据的安全性,电驴送服务器端向商户服务端提供商户编号、签名密钥(paySecret)。用于接口通讯过程中的数据签名使用。通讯数据MD5算法进行签名,保证数据的安全与完整。

# 5、签名方式

# 5.1、报文拼接

将参与签名的字段参数按照ASCIII的方式进行排序后,按照"字段名=字段值"的方式通过"&"进行拼接。注:值为空不参与签名。例如:

param_a=value_a&param_b=value_b&param_c=value_c

# 5.2、数据签名

获取到签名原文后,将签名密钥拼接在最后,进行MD5签名,签名结果需转大写。例如:

param_a=value_a&param_b=value_b&param_c=value_c&paySecret=123456

# 6、接口说明

# 6.1、商户注册激活

商户在电驴送APP注册账号,电驴送服务端发送商户编号和签名密钥给商户,商户通过商户编号和签名密钥调用电驴送平台服务端接口,电驴送平台服务端在接收到请求后,对请求参数进行校验,并返回调用结果。

# 6.2、创建门店

接口地址:/openapi/merchant/shop/add

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
shopName 门店名称 true string
shopShortName 门店简称 true string
shopContactPhone 门店联系人手机号 true string
shopContactName 门店联系人姓名 true string
shopProvinceCode 门店所在省份编码 true string
shopCityCode 门店所在城市编码 true string
shopAreaCode 门店所在区县编码 true string
shopAddress 门店详细地址 true string
houseNum 门店门牌号 true string
longitude 门店地理位置经度(高德坐标系) true string
latitude 门店地理位置纬度(高德坐标系) true string
shopDoorPhoto 门店门头照,Base64 格式
参考格式
"data:image/jpg;base64,YYU...."
true string
businessCategory 门店经营类目:食品小吃(1)、饮料(2)、蛋糕(3)、鲜花(4)、生鲜果蔬(5)、电子数码(6)、百货(7)、文印票务(8)、医药(9)、同城电商(10)、小商品市场(11)、烧烤小龙虾(12) true string

请求示例

{
    "shopContactPhone": "18988969776",
    "latitude": "23.126977",
    "sign": "11111111111111",
    "shopName": "88奶茶",
    "shopAddress": "广州市富力盈力大厦北塔",
    "shopAreaCode": "440106",
    "shopShortName": "88奶茶",
    "businessCategory": "1",
    "shopCityCode": "440100",
    "shopDoorPhoto": "data:image/png;base64,iVB….",
    "shopContactName": "jack",
    "houseNum": "101",
    "shopProvinceCode": "440000",
    "merchantNo": "1537321229932040193",
    "longitude": "113.317098"
}

响应示例:

{
	"code": 0,
	"data": {
		"shopNo": "门店编号"
	},
	"msg": "操作成功",
	"ok": true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

data参数说明

参数名称 参数说明 类型
shopNo 门店编号 string

# 6.3、更新门店

接口地址: /openapi/merchant/shop/edit

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
shopNo 门店编码 true string
shopName 门店名称 true string
shopShortName 门店简称 true string
shopContactPhone 门店联系人手机号 true string
shopContactName 门店联系人姓名 true string
shopProvinceCode 门店所在省份编码 true string
shopCityCode 门店所在城市编码 true string
shopAreaCode 门店所在区县编码 true string
shopAddress 门店详细地址 true string
houseNum 门店门牌号 true string
shopDoorPhoto 门店门头照,Base64 格式
参考格式:
"data:image/jpg;base64,/YYB...."
true string
longitude 门店地理位置经度(高德坐标系) true string
latitude 门店地理位置纬度(高德坐标系) true string
businessCategory 门店经营类目:食品小吃(1)、饮料(2)、蛋糕(3)、鲜花(4)、生鲜果蔬(5)、电子数码(6)、百货(7)、文印票务(8)、医药(9)、同城电商(10)、小商品市场(11)、烧烤小龙虾(12) true string

请求示例

{
    "shopContactPhone": "18988969773",
    "latitude": "23.126977",
    "sign": "123456",
    "shopName": "77奶茶",
    "shopAddress": "广州市富力盈力大厦北塔",
    "shopAreaCode": "440106",
    "shopShortName": "77奶茶",
    "businessCategory": "1",
    "shopCityCode": "440100",
    "shopDoorPhoto": "data:image/png;base64,iVBO..",
    "shopContactName": "jack",
    "shopNo": "1537332156148727809",
    "houseNum": "101",
    "shopProvinceCode": "440000",
    "merchantNo": "1537321229932040193",
    "longitude": "113.317098"
}

响应示例:

{
	"code": 0,
	"data": null,
	"msg": "操作成功",
	"ok": true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

# 6.4、查询门店运力

接口地址: /openapi/merchant/shop/delivery

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
shopNo 门店编码 true string

请求示例

{
    "sign": "95343AE562D2FF0AB0B42A9968AD8CAB",
    "shopNo": "1537332156148727809",
    "merchantNo": "1537321229932040193"
}

响应示例:

{
	"code": 0,
	"data": {
		"deliveryList": [
			{
				"deliveryId": "1",
				"deliveryName": "美团配送",
				"icoUrl": "…",
				"deliveryStatus": "2",
				"desc": ""
			}
		] 
	},
	"msg": "",
	"ok": true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

data - deliveryList参数说明

参数名称 参数说明 类型
deliveryId 运力id string
deliveryName 运力名称 string
icoUrl 运力图标,base64返回 string
deliveryStatus 运力状态: 1:审核中 2:审核失败
3:审核通过 4:已开通 5:暂不可用
string
desc 状态描述 string

# 6.5、预下单

商户可通过该接口查询到该时刻订单在各支持的运力公司所需的运费

接口地址: /openapi/merchant/order/queryDeliveryFee

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
shopNo 门店编码 true string
remark 备注 true string
otherOrderNo 外部订单号 true string
orderType 订单类型 1:即时单 2:预约单 true string
appointType 预约单类型
订单类型为"2"时必传
1:预约送达单 2:预约取件单
false string
expectedPickupTime 期望取货时间
预约单类型为"2"时必传
13位的时间戳
false string
expectedDeliverTime 期望送达时间
预约单类型为"1"时必传
13位的时间戳
false string
receiverName 收货人姓名 true string
receiverAddress 收货人地址 true string
receiverLat 收货人地址纬度(高德坐标系) true string
receiverLng 收货人地址经度(高德坐标系) true string
receiverPhone 收货人联系方式 true string
cargoWight 订单重量 单位:KG true string
cargoPrice 订单价格 单位:元 true string
productList 订单明细,参数详见下表 true object
businessCategory 物品类目:食品小吃(1)、饮料(2)、蛋糕(3)、鲜花(4)、生鲜果蔬(5)、电子数码(6)、百货(7)、文印票务(8)、医药(9)、同城电商(10)、小商品市场(11)、烧烤小龙虾(12) true string

订单明细productList详细参数:

参数名称 参数说明 类型
goods 商品明细,参数详见下表 List
description 订单备注 string
deliverFee 顾客实际支付的运费 double
invoice 发票抬头 string
originalPrice 订单原价 double
total 顾客实际支付金额 double
daySn 门店当日流水号(取餐号) string

商品明细goods详细参数:

参数名称 参数说明 类型
goodCount 货物数量 int
goodName 货品名称 string
goodPrice 货品单价 double
goodProperty 货品属性 string

请求示例

{
"orderType": "1",
"cargoWight": "1",
"receiverName": "小朋友",
"sign": "EB5A6B53955E7D55263E71D0F2B36EEB",
"remark": "请尽快送达",
"cargoPrice": "10",
"receiverAddress": "富力盈丰A座",
"receiverPhone": "18988969775",
"otherOrderNo": "1001",
"businessCategory": "1",
"receiverLng": "113.317098",
"shopNo": "1537332156148727809",
"receiverLat": "23.126977",
"productList": "{\"daySn\":\"T03\",\"deliverFee\":0.0,\"goods\":[{\"goodName\":\"瑰手工冰粉\",\"goodPrice\":32.0,\"goodProperty\":\"\"}],\"originalPrice\":32.0,\"shopName\":\"逸泉牛肉粉\",\"total\":0.0}",
"merchantNo": "1537321229932040193"
}

响应示例:

{
	"code":  0,
	"data":  {
		"otherOrderNo":  "12346",
        //外部订单号
		"preOrderInfoList":  [ 
			{
				"pushOrderNo":  "pu1474269882257387520",              
				"distance":  10,                
				"price":  8.3,                
				"deliveryId":  "1",               
				"deliveryName":  "美团配送",               
				"icoUrl":  "…"			
            }		
        ] 	
    },   
	"msg":  "",    
	"ok":  true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

data - preOrderInfoList参数说明

参数名称 参数说明 类型
pushOrderNo 推送单号 string
distance 距离,单位:米 double
price 运力价格,单位:元 double
deliveryId 运力id string
deliveryName 运力名称 string
icoUrl 运力图标,base64返回
参考格式:"data:image/jpg;base64,YYU...."
string

# 6.6、正式下单

商户可通过该接口正式下单

如果传多个推送单号,则按价格由低到高,2分钟轮询一次,直到接单为止

如需测试骑手接单,请提供配送单号并联系技术人员

接口地址: /openapi/merchant/order/add

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
pushOrderNoList 推送单号,预下单返回的单号 true List
paymentType 支付类型,5:余额支付 true string
notify_url 异步通知地址
完成订单、取消订单、骑手接单等通知
true string

请求示例

{
"sign": "1C650BB7C06CDCE1D28F9ADB2C7B0556",
"pushOrderNoList": "[\"pu1537341137872891904\"]",
"paymentType": "5",
"notifyUrl": "123",
"merchantNo": "1537321229932040193"
}

响应示例:

{
"code": 0,
"data": {
    "orderNo": "12346"//配送订单号
},
"msg": "",
"ok": true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

data 参数说明

参数名称 参数说明 类型
orderNo 配送订单号 string

# 6.7、取消下单

接口地址: /openapi/merchant/order/cancel

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
otherOrderNo 外部单号 true string

请求示例

{
"sign": "DB6274516FB3D72FB97E26854660C3FE",
"otherOrderNo": "1001",
"merchantNo": "1537321229932040193"
}

响应示例:

{
	"code": 0,
	"data": {
		"deductAmount": 2 //违约金,code为0时返回
	},
	"msg": "",
	"ok": true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

data 参数说明

参数名称 参数说明 类型
deductAmount 违约金
code为0时返回
double

# 6.8、获取订单信息和骑手位置

接口地址: /openapi/merchant/order/info

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
otherOrderNo 外部单号 true string

请求示例

{
    "sign": "DB6274516FB3D72FB97E26854660C3FE",
    "otherOrderNo": "1001",
    "merchantNo": "1537321229932040193"
}

响应示例:

{
    "msg": "",
    "code": 0,
    "data": {
        "riderPhone": "158xxxxx",
        "orderStatus": "3",
        "icoUrl": "…",
        "riderName": "张三",
        "deliveryId": "1",
        "price": 8.8,
        "riderLng": "128.555",
        "riderLat": "66.2222",
        "deliveryName": "美团配送"
    },
    "ok": true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

data 参数说明

参数名称 参数说明 类型
orderStatus 订单状态
2、已接单;3、骑手到店 ;4、配送中 ;
5、已送达; 6、已取消
string
price 运力价格,单位:元 double
deliveryId 运力id string
deliveryName 运力名称 string
icoUrl 运力图标,base64返回
参考格式:"data:image/jpg;base64,YYU...."
string
riderName 骑手姓名 string
riderPhone 骑手电话 string
riderLng 骑手经度(高德坐标系) string
riderLat 骑手纬度(高德坐标系) string

# 6.9、订单状态变更通知

客户接收通知后返回'SUCCESS'字符串则不再通知
如通知请求异常或返回非'SUCCESS'字符串,会重试一次通知

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

通知参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string
orderStatus 订单状态
2、已接单;3、骑手到店 ;4、配送中 ;
5、已送达; 6、已取消
true string
deliveryId 运力id true string
deliveryName 运力名称 true string
icoUrl 运力图标,base64返回
参考格式:"data:image/jpg;base64,YYU...."
true string
price 运力价格 true double
orderNo 配送单号 true string
otherOrderNo 外部单号 true string

# 6.10、查询账户余额

接口地址: /openapi/merchant/balance/query

请求方式:POST

consumes:["application/json"]

produces:["*/*"]

请求参数:

参数名称 参数说明 是否必须 数据类型
merchantNo 商户编号 true string
sign 签名 true string

请求示例

{
    "sign": "35DCD4C5E67EF201AE2384527B487654",
    "merchantNo": "1537321229932040193"
}

响应示例:

{
    "msg": "",
    "code": 0,
    "data": {
        "balance": 234.23
    },
    "ok": true
}

响应参数:

参数名称 参数说明 类型
code 返回标记:成功=0,失败=1 integer(int32)
data 数据 Json String
msg 返回信息 string
ok boolean

data 参数说明

参数名称 参数说明 类型
balance 余额,单位元 double
Last Updated: 6/20/2022, 11:04:09 AM