123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- /**
- * 物流推送
- *
- *
- *
- *
- * by Jeff Wan
- */
- defined('InShopNC') or exit('Access Invalid!');
- require_once (BASE_CORE_PATH . '/framework/function/http.php');
- class deliveryLogic
- {
- private static $appURL = 'http://223.4.48.187:30004/lrlzApiRest/router/rest';
- //'http://oms.shtest.lrlz.com:49521/lrlzApiRest/router/rest';
- private static $appkey = '2015panda';
- private static $appPassWord = 'nEs5vu86JSjh89WPW4de2d3e87rwli3e8rw';
- private function _getSign($data){
- return md5(self::$appkey . self::$appPassWord . json_encode($data));
- }
- public function putOrder($pay_sn, $trade_no)
- {
- Log::record(__FUNCTION__,Log::DEBUG);
- $order_list = Model('order')->getNormalOrderList(array('pay_sn'=> $pay_sn), $this->page, '*', 'order_id desc', '', array('order_address', 'order_goods'));
- $delivery_order_list = array();
- foreach ($order_list as $order_info)
- {
- Log::record(" 1 ",Log::DEBUG);
- if ($order_info['order_state'] === '20')
- {
- Log::record(" 2 ",Log::DEBUG);
- $delivery_order = array();
- $delivery_order['tid'] = $order_info['order_sn'];
- $delivery_order['total_fee'] = $order_info['order_amount'];
- $delivery_order['discount_fee'] = '';
- $delivery_order['post_fee'] = $order_info['shipping_fee'];
- $delivery_order['created'] = date('Y-m-d H:i:s', $order_info['add_time']);
- $delivery_order['pay_time'] = date('Y-m-d H:i:s',$order_info['payment_time']);
- $delivery_order['buyer_message'] = '';
- $delivery_order['express_code'] = '';
- $delivery_order['pay_account_type'] = $order_info['payment_code'] == 'wxpay' ? '微信支付': '支付宝';
- $delivery_order['pay_account_id'] = '';
- $delivery_order['pay_account_no'] = $trade_no;
- $delivery_order['buyer_nick'] = $order_info['buyer_name'] === 'anonymous' ? 'anonymous'.'_'. $order_info['buyer_id'] : $order_info['buyer_name'];
- $delivery_order['buyer_email'] = $order_info['buyer_email'];
- $delivery_order['trade_memo'] = '';
- $delivery_order['receiver_name'] = $order_info['reciver_name'];
- $delivery_area = explode("\t", $order_info['reciver_info']['area']);
- $delivery_order['receiver_state'] = $delivery_area[0];
- $delivery_order['receiver_city'] = $delivery_area[1];
- $delivery_order['receiver_district'] = $delivery_area[2];
- Log::record("{$delivery_order['receiver_state']} {$delivery_order['receiver_city']} {$delivery_order['receiver_district']}");
- $delivery_order['receiver_address'] = $order_info['reciver_info']['street'];
- $delivery_order['receiver_zip'] = '000000';
- $delivery_order['receiver_mobile'] = $order_info['reciver_info']['mob_phone'];
- $delivery_order['receiver_phone'] = $order_info['reciver_info']['tel_phone'];
- $delivery_order['order_size'] = count($order_info['extend_order_goods']);
- $delivery_order['orderList'] = array();
- foreach($order_info['extend_order_goods'] as $key => $goods)
- {
- $delivery_goods = array();
- $delivery_goods['oid'] = $order_info['order_sn'] . $key;
- $delivery_goods['tid'] = $order_info['order_sn'];
- $delivery_goods['title'] = $goods['goods_name'];
- $delivery_goods['price'] = $goods['goods_price'];
- $delivery_goods['num'] = $goods['goods_num'];
- $goods_serial = Model('goods')->getGoodsInfo(array('goods_id'=>$goods['goods_id']));
- $delivery_goods['outer_sku_id'] = $goods_serial['goods_serial'];
- $delivery_goods['outer_sku_properties_name'] = $goods['goods_name'];
- $delivery_goods['buyer_nick'] = $order_info['buyer_name'] === 'anonymous' ? 'anonymous'.'_'. $order_info['buyer_id'] : $order_info['buyer_name'];
- array_push($delivery_order['orderList'] , $delivery_goods);
- }
- array_push($delivery_order_list, $delivery_order);
- }
- }
- $data = array('type' => 'PUT_TRADE', 'data' => $delivery_order_list);
- $sign = $this->_getSign($data);
- $headers = array('v_appkey: '.self::$appkey, 'v_sign: '.$sign, 'Content-Type: application/json');
- $result = http_post_data(self::$appURL,json_encode($data),$headers);
- Log::record("post data={$result}",Log::DEBUG);
- return $result;
- }
- private function _http_json_post($url, $params = array(), $headers = array())
- {
- if (!function_exists('curl_init')) {
- return NULL;
- }
- $ci = curl_init();
- curl_setopt($ci, CURLOPT_URL, $url);
- if ($headers) {
- curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
- }
- curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ci, CURLOPT_POST, 1);
- curl_setopt($ci, CURLOPT_POSTFIELDS, $params);
- $response = curl_exec($ci);
- if($response){
- curl_close($ci);
- return $response;
- } else {
- $error = curl_errno($ci);
- curl_close($ci);
- return array('curl error code: '.$error);
- }
- }
- public function handleCallback($param){
- $model_order = Model('order');
- $condition = array('order_sn' => $param['order_sn']);
- $order_info = $model_order->getOrderInfo($condition,array('order_common','order_goods'));
- $model_express = Model('express');
- $express_info = $model_express->getExpressInfoByOMS($param['oms_code']);
- $data['reciver_name'] = $order_info['reciver_name'];
- $data['reciver_info'] = $order_info['reciver_info'];
- $data['deliver_explain'] = $order_info['deliver_explain'];
- $data['daddress_id'] = intval($order_info['daddress_id']);
- $data['shipping_express_id'] =intval($express_info['express_id']);
- $data['shipping_code'] = $param['shipping_code'];
- $logic_order = Logic('order');
- $result = $logic_order->changeOrderSend($order_info, 'seller', $order_info['buyer_name'], $data);
- return $result;
- }
- }
|