123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- <?php
- namespace Home\Controller;
- class ThirthdeliveryController extends CommonController {
-
- protected function _initialize()
- {
- parent::_initialize();
- }
-
- public function notify(){
- $return_json_data = file_get_contents("php://input");
- $json_data = json_decode($return_json_data,true);
-
- if(isset($json_data['client_id']) && isset($json_data['order_id']) && isset($json_data['order_status']) && isset($json_data['signature'])){
-
- $other_data = array();
- $other_data['data_type'] = 'imdada';
- $other_data['order_status'] = $json_data['order_status'];
- if($json_data['order_status'] == 2){
- $other_data['dm_id'] = $json_data['dm_id'];
- $other_data['dm_name'] = $json_data['dm_name'];
- $other_data['dm_mobile'] = $json_data['dm_mobile'];
- $other_data['third_id'] = $json_data['client_id'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['order_id'],0,$other_data);
- }else if($json_data['order_status'] == 3){
- $other_data['dm_id'] = $json_data['dm_id'];
- $other_data['dm_name'] = $json_data['dm_name'];
- $other_data['dm_mobile'] = $json_data['dm_mobile'];
- $other_data['third_id'] = $json_data['client_id'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['order_id'],0,$other_data);
- }else if($json_data['order_status'] == 4){
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['order_id'],6,$other_data);
- }else if($json_data['order_status'] == 5){
-
- $other_data['cancel_reason'] = $json_data['cancel_reason'];
-
- $other_data['cancel_from'] = $json_data['cancel_from'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['order_id'],0,$other_data);
- }else if($json_data['order_status'] == 9){
-
- $other_data['cancel_reason'] = "妥投异常-物品返回中";
-
- $other_data['cancel_from'] = $json_data['cancel_from'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['order_id'],0,$other_data);
- }else if($json_data['order_status'] == 10){
-
- $other_data['cancel_reason'] = "妥投异常-物品返回完成";
-
- $other_data['cancel_from'] = $json_data['cancel_from'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['order_id'],0,$other_data);
- }else if($json_data['order_status'] == 1000){
-
- $other_data['cancel_reason'] = $json_data['cancel_reason'];
-
- $other_data['cancel_from'] = $json_data['cancel_from'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['order_id'],0,$other_data);
- }
- echo 'notify';
- }else if(isset($_GET['sign']) && isset($json_data['sf_order_id']) && isset($json_data['shop_order_id']) && isset($json_data['url_index']) && isset($json_data['push_time'])){
-
- $sign = $_GET['sign'];
-
- $dev_id = D('Home/Front')->get_config_by_name('localtown_sf_dev_id');
- $dev_key = D('Home/Front')->get_config_by_name('localtown_sf_dev_key');
- if ($sign && $sign == base64_encode(MD5("{$return_json_data}&{$dev_id}&{$dev_key}"))) {
- $other_data = array();
- $url_index = $json_data['url_index'];
- $other_data['data_type'] = 'sf';
- if($url_index == 'sf_cancel'){
-
- $other_data['cancel_reason'] = $json_data['cancel_reason'];
-
- $other_data['status_desc'] = $json_data['status_desc'];
-
- $other_data['operator_name'] = $json_data['operator_name'];
-
- $other_data['order_status'] = $json_data['order_status'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['shop_order_id'],0,$other_data);
- }else if($url_index == 'rider_status'){
-
- $other_data['operator_name'] = $json_data['operator_name'];
-
- $other_data['operator_phone'] = $json_data['operator_phone'];
-
- $other_data['order_status'] = $json_data['order_status'];
-
- $other_data['status_desc'] = $json_data['status_desc'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['shop_order_id'],0,$other_data);
- }else if($url_index == 'rider_exception'){
-
- $other_data['ex_id'] = $json_data['ex_id'];
-
- $other_data['ex_content'] = $json_data['ex_content'];
-
- $other_data['order_status'] = $json_data['order_status'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['shop_order_id'],0,$other_data);
- }else if($url_index == 'order_complete'){
-
- $other_data['order_status'] = $json_data['order_status'];
- D('Seller/Order')->do_localtown_thirth_delivery_return($json_data['shop_order_id'],6,$other_data);
- }
- $result_array = array();
- $result_array['error_code'] = 0;
- $result_array['error_msg'] = "success";
- echo json_encode($result_array);
- }
- }else if(isset($json_data['messageType']) && isset($json_data['messageBody'])){
-
- $messageBody = json_decode($json_data['messageBody'],true);
- $other_data = array();
- $other_data['data_type'] = 'imdada';
- $other_data['order_status'] = 5;
-
- $other_data['cancel_reason'] = $messageBody['cancelReason'];
-
- $other_data['cancel_from'] = 11;
- D('Seller/Order')->do_localtown_thirth_delivery_return($messageBody['orderId'],0,$other_data);
- $result_array = array();
- $result_array['status'] = "ok";
- echo json_encode($result_array);
- }else if(isset($json_data['app_id']) && isset($json_data['data']) && isset($json_data['salt']) && isset($json_data['signature'])){
-
- $app_id = D('Home/Front')->get_config_by_name('localtown_ele_app_id');
- $secret_key = D('Home/Front')->get_config_by_name('localtown_ele_secret_key');
-
- $sig = $this->eleGenerateSign($app_id, $json_data['salt'], $secret_key);
- if($sig == $json_data['signature']){
- $data = urldecode($json_data['data']);
-
- $partner_order_code = $data['partner_order_code'];
-
- $order_status = $data['order_status'];
- $order_sn = $this->getOrderSnByThirdOrderId($partner_order_code);
- if(!empty($order_sn)){
- $other_data = [];
- $other_data['data_type'] = 'ele';
- if($order_status == 1){
- $other_data['desc'] = '已接单';
- $other_data['order_status'] = 2;
- D('Seller/Order')->do_localtown_thirth_delivery_return($order_sn,0,$other_data);
- }else if($order_status == 20){
-
- $other_data['operator_name'] = $data['carrier_driver_name'];
-
- $other_data['operator_phone'] = $data['carrier_driver_phone'];
- $other_data['desc'] = "已分配骑手:".$other_data['operator_name'];
- $other_data['order_status'] = 3;
- D('Seller/Order')->do_localtown_thirth_delivery_return($order_sn,0,$other_data);
- }else if($order_status == 80){
-
- $other_data['operator_name'] = $data['carrier_driver_name'];
-
- $other_data['operator_phone'] = $data['carrier_driver_phone'];
- $other_data['desc'] = "骑手".$other_data['operator_name']."已到店";
- $other_data['order_status'] = 3;
- D('Seller/Order')->do_localtown_thirth_delivery_return($order_sn,0,$other_data);
- }else if($order_status == 2){
-
- $other_data['operator_name'] = $data['carrier_driver_name'];
-
- $other_data['operator_phone'] = $data['carrier_driver_phone'];
- $other_data['desc'] = "骑手".$other_data['operator_name']."配送中";
- $other_data['order_status'] = 3;
- D('Seller/Order')->do_localtown_thirth_delivery_return($order_sn,0,$other_data);
- }else if($order_status == 3){
-
- $other_data['operator_name'] = $data['carrier_driver_name'];
-
- $other_data['operator_phone'] = $data['carrier_driver_phone'];
- $other_data['desc'] = "骑手".$data['carrier_driver_name']."已送达";
- $other_data['order_status'] = 4;
- D('Seller/Order')->do_localtown_thirth_delivery_return($order_sn,6,$other_data);
- }else if($order_status == 5){
- $other_data['error_code'] = $data['error_code'];
- $other_data['desc'] = $data['detail_description'];
- $other_data['order_status'] = 100;
- D('Seller/Order')->do_localtown_thirth_delivery_return($order_sn,0,$other_data);
- }
- }
- }
- }
- }
-
- public function getOrderSnByThirdOrderId($third_order_id){
- $orders = M('lionfish_comshop_orderdistribution_order')->field('order_id')->where( array('third_order_id' => $third_order_id) )->find();
- if(!empty($orders)){
- $order_info = M('lionfish_comshop_order')->field('order_num_alias')->where( array('order_id' => $orders['order_id']) )->find();
- if(!empty($order_info)){
- return $order_info['order_num_alias'];
- }else{
- return '';
- }
- }else{
- return '';
- }
- }
-
- public function eleGenerateSign($appId, $salt, $secretKey) {
- $seed = 'app_id=' . $appId . '&salt=' . $salt . '&secret_key=' . $secretKey;
- return md5(urlencode($seed));
- }
- }
|