Browse Source

debug kdn callback

stanley-king 9 years ago
parent
commit
e2979dd6eb
4 changed files with 47 additions and 38 deletions
  1. 10 4
      helper/kdn_helper.php
  2. 2 0
      helper/session.php
  3. 1 1
      mobile/control/test.php
  4. 34 33
      mobile/kdniao_notify.php

+ 10 - 4
helper/kdn_helper.php

@@ -13,7 +13,7 @@ class kdn_helper
 
     static public function query($shipperCode, $logisticCode)
     {
-        $requestData = "{\"OrderCode\":\"\",\"ShipperCode\":\"" . $shipperCode . "\",\"LogisticCode\":\"" . $logisticCode . "\"}";
+        $requestData = json_encode(array('ShipperCode' => $shipperCode,'LogisticCode' => $logisticCode));
         $datas = array(
             'EBusinessID' => '1256051',
             'RequestType' => '1002',
@@ -38,6 +38,10 @@ class kdn_helper
         // 发送快递鸟订阅回调
         $express = rkcache('express', true);
         $e_code = $express[$order_info['extend_order_common']['shipping_express_id']]['e_kdn_code'];
+        if(empty($e_code)) {
+            Log::record("找不到该单号的快递公司编码—— ordersn={$order_sn}",Log::ERR);
+            return;
+        }
         // 通知订阅, 快递鸟定时回调
         $ret = self::req_subscribe($e_code, $order_info['shipping_code'], $order_sn);
         if($ret === false) {
@@ -47,9 +51,10 @@ class kdn_helper
         }
     }
 
-    static private function req_subscribe($shipperCode, $logisticCode, $order_sn)
+    static public function req_subscribe($e_code, $logisticCode, $order_sn)
     {
-        $requestData = "{\"OrderCode\":\"\",\"ShipperCode\":\"" . $shipperCode . "\",\"LogisticCode\":\"" . $logisticCode . "\" Bk\":\"" . $order_sn . "\"}";
+        $datas = array(array('Code' => $e_code,'Item' => array(array('No' => $logisticCode,'Bk' => $order_sn))));
+        $requestData = json_encode($datas);
         $datas = array(
             'EBusinessID' => '1256051',
             'RequestType' => '1005',
@@ -60,4 +65,5 @@ class kdn_helper
         $result = http_post_data(self::req_url, $datas);
         return $result;
     }
-}
+}
+

+ 2 - 0
helper/session.php

@@ -91,6 +91,7 @@ class session
                 $sid = session_id();
                 $this->expire_time = time() + self::expire_min * 60;
                 fcgi_setcookie("PHPSESSID","{$sid}",$this->expire_time);
+                $_COOKIE[self::session_name] = $sid;
                 $this->sessid = $sid;
             }
 
@@ -106,6 +107,7 @@ class session
                 $this->expire_time = time() + self::expire_min * 60;
                 fcgi_setcookie("PHPSESSID","{$sid}",$this->expire_time);
                 $this->sessid = $sid;
+                $_COOKIE[self::session_name] = $sid;
 
                 return '';
             } else {

+ 1 - 1
mobile/control/test.php

@@ -200,6 +200,6 @@ class testControl extends mobileHomeControl
     public function subscribe_kdnOp()
     {
         $ordersn = $_GET['order_sn'];
-        kdn_helper::subscribe($ordersn);
+        kdn_helper::req_subscribe('YD','3941561454548',$ordersn);
     }
 }

+ 34 - 33
mobile/kdniao_notify.php

@@ -6,48 +6,49 @@ require_once (BASE_DATA_PATH . '/logic/delivery.logic.php');
 $requestData = $_POST['RequestData'];  // 快递鸟数据
 $deliver_info = json_decode(urldecode($requestData));
 
-Log::record("kdniao_notify: post data={$requestData}",Log::ERR);
+Log::record("kdniao_notify: post data={$requestData}",Log::DEBUG);
 
 //数据不正确, 记录并退出
 if ($deliver_info === false || empty($deliver_info))
 {
     Log::record("kdniao_notify:cannot query delivery info from kuaidn.",Log::ERR);
-    return;
 }
-
-// 订单sn号
-$order_sn = $deliver_info['Data']['CallBack'];
+else
+{
+    // 订单sn号
+    $order_sn = $deliver_info['Data']['CallBack'];
 
 // 数据解析
-switch ($deliver_info['Data']['State'])
-{
-    case '2':	// 在途中, 不处理
-        $msg = '在途中';
-        Log::record('订单: {$order_sn} 在途中');
-        break;
-    case '3':	// 已签收, 设置为已收货
-	    {
-	    	$msg = '已签收';
-	        $model_order = Model('order');
-	        $condition = array();
-	        $condition['order_state'] = ORDER_STATE_SEND;
-	        $condition['order_sn'] = $order_sn;
-	        $update = array();
-	        $update['order_state'] = ORDER_STATE_SUCCESS;	// 收货成功状态
-	        $update = $model_order->editOrder($update, $condition);
-	        if (!$update) {
-	            Log::record('更新订单状态为已收货状态时写入失败');
-	        }
-	    }
-        break;
-    case '4':	// 问题件
-        $msg = '问题件';
-        break;
-    default: {
-        Log::record('query_status false');
-        return;
+    switch ($deliver_info['Data']['State'])
+    {
+        case '2':	// 在途中, 不处理
+            $msg = '在途中';
+            Log::record('订单: {$order_sn} 在途中');
+            break;
+        case '3':	// 已签收, 设置为已收货
+        {
+            $msg = '已签收';
+            $model_order = Model('order');
+            $condition = array();
+            $condition['order_state'] = ORDER_STATE_SEND;
+            $condition['order_sn'] = $order_sn;
+            $update = array();
+            $update['order_state'] = ORDER_STATE_SUCCESS;	// 收货成功状态
+            $update = $model_order->editOrder($update, $condition);
+            if (!$update) {
+                Log::record('更新订单状态为已收货状态时写入失败');
+            }
+        }
+            break;
+        case '4':	// 问题件
+            $msg = '问题件';
+            break;
+        default: {
+            Log::record('query_status false');
+            break;
+        }
     }
 }
-
+echo (json_encode(array('EBusinessID' => '1256051', 'Success' => true,'Reason' => '')));
 
 ?>