|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace ghs\controllers;
|
|
|
|
|
|
+use bizGhs\express\services\DadaExpressServices;
|
|
|
use bizGhs\order\classes\OrderClass;
|
|
|
use Yii;
|
|
|
use common\components\util;
|
|
|
@@ -134,7 +135,20 @@ class NoticeController extends PublicController
|
|
|
echo "fail";
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ /*
|
|
|
+ * {
|
|
|
+ "signature": "aaaaaaaaaaaaaaaaaa", //签名
|
|
|
+ "client_id": "270340107542552", 返回达达运单号,默认为空
|
|
|
+ "order_id": "111111111111", 添加订单接口中的origin_id值
|
|
|
+ "order_status": 4, 订单状态(待接单=1,待取货=2,配送中=3,已完成=4,已取消=5, 指派单=8,妥投异常之物品返回中=9, 妥投异常之物品返回完成=10, 骑士到店=100,创建达达运单失败=1000 可参考文末的状态说明)
|
|
|
+ "cancel_reason": "", 订单取消原因,其他状态下默认值为空字符串
|
|
|
+ "cancel_from": 0, 订单取消原因来源(1:达达配送员取消;2:商家主动取消;3:系统或客服取消;0:默认值)
|
|
|
+ "dm_id": 1, 达达配送员id,接单以后会传
|
|
|
+ "dm_name": "测试", 配送员姓名,接单以后会传
|
|
|
+ "dm_mobile": "13100001111", 配送员手机号,接单以后会传
|
|
|
+ "update_time": 1511789475 更新时间
|
|
|
+ }
|
|
|
+ */
|
|
|
public function actionExpressCallBack()
|
|
|
{
|
|
|
$postStr = file_get_contents('php://input');//接收微信服务器返回的json消息体
|
|
|
@@ -148,13 +162,57 @@ class NoticeController extends PublicController
|
|
|
}
|
|
|
//订单号
|
|
|
$orderSn = $postData['order_id'];
|
|
|
- $sign = $postData['signature'];
|
|
|
+ $sign = $postData['signature']; //签名验证?没有
|
|
|
//判断订单是否存在
|
|
|
$orderInfo = OrderClass::getByOrderSn($orderSn);
|
|
|
if(!$orderInfo){
|
|
|
Yii::warning("dada callback error: 订单不不存在: ".$orderSn);
|
|
|
util::end();
|
|
|
}
|
|
|
+ $orderStatus = $postData['order_status'];
|
|
|
+ switch ($orderStatus){
|
|
|
+ case DadaExpressServices::ORDER_WAIT_ACCEPT:
|
|
|
+ //待接单, 即下单成功: 处理相应的业务逻辑(订单状态变更,消息通知?)
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_WAIT_PICKUP:
|
|
|
+ //待收货 todo
|
|
|
+
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_SENDING:
|
|
|
+ //配送中 todo
|
|
|
+
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_COMPLETE:
|
|
|
+ //订单完成 todo
|
|
|
+
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_CANCEL:
|
|
|
+ //取消 todo
|
|
|
+ $cancel_reason = $postData['cancel_reason']; //取消理由
|
|
|
+
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_WAIT_DISPATCH:
|
|
|
+ //指派单 todo
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_UNUSUAL_BACK:
|
|
|
+ //妥投异常之物品返回中 todo
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_UNUSUAL_COMPLETE:
|
|
|
+ //妥投异常之物品返回完成 todo
|
|
|
+
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::RIDER_TO_SHOP:
|
|
|
+ //骑士到店 todo
|
|
|
+
|
|
|
+ break;
|
|
|
+ case DadaExpressServices::ORDER_FAIL:
|
|
|
+ //失败 todo
|
|
|
+
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
echo "success";
|
|
|
util::end();
|
|
|
}
|