|
|
@@ -27,22 +27,121 @@ class dada
|
|
|
}
|
|
|
|
|
|
//新增订单
|
|
|
- public static function addOrder($sourceId,$shopNo,$orderSn,$receiver)
|
|
|
+ /*
|
|
|
+ *
|
|
|
+ shop_no String 是 门店编号,门店创建后可在门店列表和单页查看
|
|
|
+ origin_id String 是 第三方订单ID
|
|
|
+ city_code String 是 订单所在城市的code(查看各城市对应的code值)
|
|
|
+ cargo_price Double 是 订单金额(单位:元)
|
|
|
+ is_prepay Integer 是 是否需要垫付 1:是 0:否 (垫付订单金额,非运费)
|
|
|
+ receiver_name String 是 收货人姓名
|
|
|
+ receiver_address String 是 收货人地址
|
|
|
+ receiver_lat Double 是 收货人地址纬度(高德坐标系,若是其他地图经纬度需要转化成高德地图经纬度,高德地图坐标拾取器)
|
|
|
+ receiver_lng Double 是 收货人地址经度(高德坐标系,若是其他地图经纬度需要转化成高德地图经纬度,高德地图坐标拾取器)
|
|
|
+ callback String 是 回调URL(查看回调说明)
|
|
|
+ cargo_weight Double 是 订单重量(单位:Kg)
|
|
|
+ receiver_phone String 否 收货人手机号(手机号和座机号必填一项)
|
|
|
+ receiver_tel String 否 收货人座机号(手机号和座机号必填一项)
|
|
|
+ tips Double 否 小费(单位:元,精确小数点后一位)
|
|
|
+ info String 否 订单备注
|
|
|
+ cargo_type Integer 否 订单商品类型:食品小吃-1,饮料-2,鲜花-3,文印票务-8,便利店-9,水果生鲜-13,同城电商-19, 医药-20,蛋糕-21,酒品-24,小商品市场-25,服装-26,汽修零配-27,数码-28,小龙虾-29,火锅-51,其他-5
|
|
|
+ cargo_num Integer 否 订单商品数量
|
|
|
+ invoice_title String 否 发票抬头
|
|
|
+ origin_mark String 否 订单来源标示(只支持字母,最大长度为10)
|
|
|
+ origin_mark_no String 否 订单来源编号,最大长度为30,该字段可以显示在骑士APP订单详情页面,示例:origin_mark_no:"#京东到家#1"达达骑士APP看到的是:#京东到家#1
|
|
|
+ is_use_insurance Integer 否是否使用保价费(0:不使用保价,1:使用保价; 同时,请确保填写了订单金额(cargo_price))商品保价费(当商品出现损坏,可获取一定金额的赔付)保费=配送物品实际价值*费率(5‰),配送物品价值及最高赔付不超过10000元, 最高保费为50元(物品价格最小单位为100元,不足100元部分按100元认定,保价费向上取整数, 如:物品声明价值为201元,保价费为300元*5‰=1.5元,取整数为2元。)若您选择不保价,若物品出现丢失或损毁,最高可获得平台30元优惠券。 (优惠券直接存入用户账户中)。
|
|
|
+ is_finish_code_needed Integer 否 收货码(0:不需要;1:需要。收货码的作用是:骑手必须输入收货码才能完成订单妥投)
|
|
|
+ delay_publish_time Integer 否 预约发单时间(预约时间unix时间戳(10位),精确到分;整分钟为间隔,并且需要至少提前5分钟预约,可以支持未来3天内的订单发预约单。)
|
|
|
+ is_direct_delivery Integer 否 是否选择直拿直送(0:不需要;1:需要。选择直拿直送后,同一时间骑士只能配送此订单至完成,同时,也会相应的增加配送费用)
|
|
|
+ product_list Object 否 订单商品明细
|
|
|
+ pick_up_pos String 否 货架信息,该字段可在骑士APP订单备注中展示
|
|
|
+
|
|
|
+ product_list:参数
|
|
|
+ sku_name String 是 商品名称,限制长度128
|
|
|
+ src_product_no String 是 商品编码,限制长度64
|
|
|
+ count Double 是 商品数量,精确到小数点后两位
|
|
|
+ unit String 否 商品单位,默认:件
|
|
|
+ */
|
|
|
+ /*
|
|
|
+ {
|
|
|
+ "status": "success",
|
|
|
+ "result": {
|
|
|
+ "distance": 53459.98,
|
|
|
+ "fee": 51.0
|
|
|
+ "deliverFee": 51.0
|
|
|
+ },
|
|
|
+ "code": 0,
|
|
|
+ "msg": "成功"
|
|
|
+ }
|
|
|
+ */
|
|
|
+ public static function addOrder($sourceId,$params)
|
|
|
{
|
|
|
$config = self::getConfig($sourceId);
|
|
|
$api = new orderApi();
|
|
|
//body内容
|
|
|
+ $api->addOrder($params);
|
|
|
+ $client = new requestClient($config,$api);
|
|
|
+ $resp = $client->makeRequest();
|
|
|
+ return self::handleResp($resp);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //运费查询(参数跟新增订单一致)
|
|
|
+ public static function queryDeliverFee($sourceId,$params)
|
|
|
+ {
|
|
|
+ $config = self::getConfig($sourceId);
|
|
|
+ $api = new orderApi();
|
|
|
+ $api->queryDeliverFee($params);
|
|
|
+ $client = new requestClient($config,$api);
|
|
|
+ $resp = $client->makeRequest();
|
|
|
+ return self::handleResp($resp);
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单重发(参数跟新增订单一致)
|
|
|
+ public static function reAddOrder($sourceId,$params)
|
|
|
+ {
|
|
|
+ $config = self::getConfig($sourceId);
|
|
|
+ $api = new orderApi();
|
|
|
+ $api->reAddOrder($params);
|
|
|
+ $client = new requestClient($config,$api);
|
|
|
+ $resp = $client->makeRequest();
|
|
|
+ return self::handleResp($resp);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单取消 (可以用自定义的理由)
|
|
|
+ /*
|
|
|
+ order_id String 是 第三方订单编号
|
|
|
+ cancel_reason_id Integer 是 取消原因ID(取消原因列表)
|
|
|
+ cancel_reason String 否 取消原因(当取消原因ID为其他时,此字段必填)
|
|
|
+ */
|
|
|
+ public static function formalCancel($sourceId,$orderSn,$reasonId)
|
|
|
+ {
|
|
|
+ $config = self::getConfig($sourceId);
|
|
|
+ $api = new orderApi();
|
|
|
$params = [
|
|
|
- 'shop_no'=>$shopNo,
|
|
|
- 'origin_id'=>$orderSn,
|
|
|
- 'city_code'=> '0592',
|
|
|
+ 'order_id'=>$orderSn,
|
|
|
+ 'cancel_reason_id'=>$reasonId,
|
|
|
];
|
|
|
- $api->addOrder($params);
|
|
|
+ $api->formalCancel($params);
|
|
|
$client = new requestClient($config,$api);
|
|
|
$resp = $client->makeRequest();
|
|
|
return self::handleResp($resp);
|
|
|
}
|
|
|
|
|
|
+ //订单状态查询
|
|
|
+ public static function statusQuery($sourceId,$orderSn)
|
|
|
+ {
|
|
|
+ $config = self::getConfig($sourceId);
|
|
|
+ $api = new orderApi();
|
|
|
+ $params = [
|
|
|
+ 'order_id'=>$orderSn,
|
|
|
+ ];
|
|
|
+ $api->queryOrderStatus($params);
|
|
|
+ $client = new requestClient($config,$api);
|
|
|
+ $resp = $client->makeRequest();
|
|
|
+ return self::handleResp($resp);
|
|
|
+ }
|
|
|
|
|
|
public static function getConfig($sourceId)
|
|
|
{
|
|
|
@@ -54,6 +153,7 @@ class dada
|
|
|
$config->setSourceId($sourceId);
|
|
|
$config->setHost('https://newopen.imdada.cn');
|
|
|
}else{
|
|
|
+ //测试 :商户id: 73753 门店id: 11047059
|
|
|
$config->setSourceId(73753);
|
|
|
$config->setHost("http://newopen.qa.imdada.cn");
|
|
|
}
|
|
|
@@ -69,4 +169,5 @@ class dada
|
|
|
}
|
|
|
return $resp->getResult();
|
|
|
}
|
|
|
+
|
|
|
}
|