Exemplo n.º 1
0
 /**
  * 12 预订租赁车
  * @param json json_params{}
  * $return $arr_result ||$return_status
  * url:/index.php?r=CarrentalApi/rc/MakeBookingRQ
  * /index.php?r=CarrentalApi/rc/GetHotAreaMatchListRQ\&update=crontabRedis
  * /index.php?r=CarrentalApi/rc/GetHotAreaMatchListRQ\&update=crontabShow
  **/
 public function actionMakeBookingRQ()
 {
     $json_params = Yii::app()->request->getParam('json_params');
     //客户端请求的json参数
     $request_time = time();
     //测试用例[S]
     $json_params_go = Yii::app()->request->getParam('go');
     if ($json_params_go == 'go') {
         // $json_params='{"ExtraList":{"Extra":[{"id":"11590698223010","name":"\u5a74\u513f\u5ea7\u6905","amount":"2","value":"1.31"},{"id":"11590698218010","name":"\u8ffd\u52a0\u9a7e\u9a76\u4eba","amount":"2","value":"1.31"}]},"Vehicle":{"id":"272851603","automatic":"Manual","doors":"2","seats":"4","group":"MBMR","imageURL":"http:\/\/brs.test.baicheng.com\/uploads\/brs\/imgs\/carrental\/images\/car_images\/newsite\/B\/ford_ka.jpg","petrol":"N\/A","airbag":"false","aircon":"Yes","fuelPolicy":"1","companyLogo":"http:\/\/brs.test.baicheng.com\/uploads\/brs\/imgs\/carrental\/images\/suppliers\/atesa_logo_lrg.gif","company":"Atesa (flex)","unlimitedMileage":"\u4ee5\u5230\u5e97\u4e3a\u51c6","CarType":"MINI\u8ff7\u4f60\/\u5c0f\u578b","insurance":["\u7834\u649e\u9669","\u7a83\u76d7\u9669","\u7b2c\u4e09\u8d23\u4efb\u9669"],"currencyCode":"CNY","price":"785.41","prefcurr":"USD","prefPrice":"128.31","discount":"0.00"},"DriverInfo":{"DriverName":{"title":"mr","firstname":"test","lastname":"test","passportNum":"110227001","name":"test","birthday":"1984-11-01"},"Address":{"country":"\u4e2d\u56fd","city":"\u5317\u4eac","street":"\u5317\u4eac\u5e02\u671d\u9633\u533a\u901a\u60e0\u6cb3\u7554\u6587\u5316\u521b\u4e1a\u56ed1131\u53f7\u541b\u5929\u5927\u53a6\u4e8c\u5c42","postcode":"100023"},"Email":"*****@*****.**","Telephone":"18618291010","DriverAge":31},"PickUp":{"location_id":"1024998","shopName":"Madrid - Gran Via - \u9a6c\u5fb7\u91cc - \u683c\u5170\u7ef4\u4e9a","Date":{"year":"2015","month":"03","day":"04","hour":"10","minute":"30"}},"DropOff":{"location_id":"1024998","shopName":"Madrid - Gran Via - \u9a6c\u5fb7\u91cc - \u683c\u5170\u7ef4\u4e9a","Date":{"year":"2015","month":"03","day":"05","hour":"14","minute":"30"}},"PaymentInfo":["\u7528\u6237\u4fe1\u7528\u5361\u6570\u636e\u4e0d\u53ef\u8bb0\u5f55\uff01"],"AdditionalInfo":{"Comments":"","PickUpService":"","DropOffService":""},"AirlineInfo":{"flightNo":""},"Tracking":{"adcamp":"","adplat":""},"remoteIp":"106.2.184.106","ContactMan":"test","ContactMobile":"18618291010","ContactEmail":"*****@*****.**","CustSource":331692,"CustName":"13621086031"}';
         $json_params = '{"ExtraList":{"Extra":[{"id":"11590698223010","name":"\\u5a74\\u513f\\u5ea7\\u6905","amount":"2","value":"1.31"},{"id":"11590698218010","name":"\\u8ffd\\u52a0\\u9a7e\\u9a76\\u4eba","amount":"2","value":"1.31"}]},"Vehicle":{"id":"272851603","automatic":"Manual","doors":"2","seats":"4","group":"MBMR","imageURL":"http:\\/\\/brs.test.baicheng.com\\/uploads\\/brs\\/imgs\\/carrental\\/images\\/car_images\\/newsite\\/B\\/ford_ka.jpg","petrol":"N\\/A","airbag":"false","aircon":"Yes","fuelPolicy":"1","companyLogo":"http:\\/\\/brs.test.baicheng.com\\/uploads\\/brs\\/imgs\\/carrental\\/images\\/suppliers\\/atesa_logo_lrg.gif","company":"Atesa (flex)","unlimitedMileage":"\\u4ee5\\u5230\\u5e97\\u4e3a\\u51c6","CarType":"MINI\\u8ff7\\u4f60\\/\\u5c0f\\u578b","insurance":["\\u7834\\u649e\\u9669","\\u7a83\\u76d7\\u9669","\\u7b2c\\u4e09\\u8d23\\u4efb\\u9669"],"currencyCode":"CNY","price":"785.41","prefcurr":"USD","prefPrice":"128.31","discount":"0.00"},"DriverInfo":{"DriverName":{"title":"mr","firstname":"test","lastname":"test","passportNum":"110227001","name":"test","birthday":"1984-11-01"},"Address":{"country":"\\u4e2d\\u56fd","city":"\\u5317\\u4eac","street":"\\u5317\\u4eac\\u5e02\\u671d\\u9633\\u533a\\u901a\\u60e0\\u6cb3\\u7554\\u6587\\u5316\\u521b\\u4e1a\\u56ed1131\\u53f7\\u541b\\u5929\\u5927\\u53a6\\u4e8c\\u5c42","postcode":"100023"},"Email":"*****@*****.**","Telephone":"18618291010","DriverAge":31},
         "PickUp":{"location_id":"1024998","location_id_search":"440618","shopName":"Madrid - Gran Via - \\u9a6c\\u5fb7\\u91cc - \\u683c\\u5170\\u7ef4\\u4e9a","Date":{"year":"2015","month":"03","day":"04","hour":"10","minute":"30"}},
         "DropOff":{"location_id":"1024998","location_id_search":"294329","shopName":"Madrid - Gran Via - \\u9a6c\\u5fb7\\u91cc - \\u683c\\u5170\\u7ef4\\u4e9a","Date":{"year":"2015","month":"03","day":"05","hour":"14","minute":"30"}},"PaymentInfo":["\\u7528\\u6237\\u4fe1\\u7528\\u5361\\u6570\\u636e\\u4e0d\\u53ef\\u8bb0\\u5f55\\uff01"],"AdditionalInfo":{"Comments":"","PickUpService":"","DropOffService":""},"AirlineInfo":{"flightNo":""},"Tracking":{"adcamp":"","adplat":""},"remoteIp":"106.2.184.106","ContactMan":"test","ContactMobile":"18618291010","ContactEmail":"*****@*****.**","CustSource":331692,"CustName":"13621086031"}';
     }
     //测试用例[E]
     //对增加的属性进行判断[S]
     $array_params = json_decode($json_params, true);
     if (empty($array_params['PickUp']['shopName'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120030_PickUp.shopName不可为空'));
         exit($return_json);
     }
     if (empty($array_params['PickUp']['location_id_search'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120059_PickUp.location_id_search不可为空'));
         exit($return_json);
     }
     if (empty($array_params['DropOff']['shopName'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120031_DropOff.shopName不可为空'));
         exit($return_json);
     }
     if (empty($array_params['DropOff']['location_id_search'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120060_DropOff.location_id_search不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['currencyCode'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120032_Vehicle.currencyCode不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['price']) || intval($array_params['Vehicle']['price']) < 1) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120033_Vehicle.price不可为空,价格有误'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['prefcurr'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120034_Vehicle.prefcurr不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['prefPrice'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120035_Vehicle.prefPrice不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['discount'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120036_Vehicle.discount不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['imageURL'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120037_Vehicle.imageURL不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['group'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120038_Vehicle.group不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['automatic'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120039_Vehicle.automatic不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['airbag'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120040_Vehicle.airbag不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['aircon'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120057_Vehicle.aircon不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['petrol'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120041_Vehicle.petrol不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['doors'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120042_Vehicle.doors不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['seats'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120043_Vehicle.seats不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['fuelPolicy'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120044_Vehicle.fuelPolicy不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['company'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120047_Vehicle.company不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['companyLogo'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120048_Vehicle.companyLogo不可为空'));
         exit($return_json);
     }
     if (empty($array_params['DriverInfo']['DriverName']['passportNum'])) {
         $array_params['DriverInfo']['DriverName']['passportNum'] = '';
         //$return_json=json_encode(array( 'status'=>false, 'error_msg'=>'0x120049_DriverInfo.DriverName.passportNum驾驶人护照号不可为空'));
         // exit($return_json);
     }
     if (empty($array_params['DriverInfo']['DriverName']['name'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120050_DriverInfo.DriverName.name驾驶人中文名称不可为空'));
         exit($return_json);
     }
     if (empty($array_params['DriverInfo']['DriverName']['birthday'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120051_DriverInfo.DriverName.birthday驾驶员的出生日期不可为空'));
         exit($return_json);
     }
     if (empty($array_params['ContactMan'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120052_ContactMan联系人姓名不可为空'));
         exit($return_json);
     }
     if (empty($array_params['ContactMobile'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120053_ContactMobile联系人手机不可为空'));
         exit($return_json);
     }
     if (empty($array_params['ContactEmail'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120054_ContactEmail联系人邮箱不可为空'));
         exit($return_json);
     }
     if (empty($array_params['CustSource'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120055_CustSource会员ID不可为空'));
         exit($return_json);
     }
     if (empty($array_params['CustName'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120056_CustName会员名称不可为空'));
         exit($return_json);
     }
     if (empty($array_params['Vehicle']['CarType'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120058_CarType车型名称不可为空'));
         exit($return_json);
     }
     if (!is_int($array_params['Chn'])) {
         $return_json = json_encode(array('status' => false, 'error_msg' => '0x120061_Chn渠道必须为INT类型'));
         exit($return_json);
     }
     //对增加的属性进行判断[S]
     //给rentalcars下单
     $Rs = RcManager::MakeBookingRQ($json_params);
     //$Rs='{"status":true,"data":{"Booking":{"@attributes":{"id":"200'.time().'"}}}}';
     // $Rs='{"status":true,"data":{"Booking":{"@attributes":{"id":"521321723"}}}}';
     // $Rs= '{"status":true,"data":{"Booking":{"@attributes":{"id":"597633004"}}}}';
     $Rs_array = json_decode($Rs, true);
     $bookingRQ = array();
     //不记录用户信息卡信息[S]
     $arr_params_filter = json_decode($json_params, true);
     if (isset($arr_params_filter['PaymentInfo'])) {
         $arr_params_filter['PaymentInfo'] = array('用户信用卡数据不可记录!');
     }
     $json_params = json_encode($arr_params_filter);
     //去除用户信息卡信息[E]
     if ($Rs_array['status'] && !empty($Rs_array['data']['Booking']['@attributes']['id'])) {
         //下单成功后给bos下单
         //查询订单状态[S]
         $bookingID = $Rs_array['data']['Booking']['@attributes']['id'];
         //rentalcars下单成功后返回的订单号
         //查询订单状态[S]
         $bookArr = json_decode($json_params, true);
         $bookArr['bookingID'] = $bookingID;
         //写入brs订单日志
         if (!RcManager::MakebookingToBrs($bookArr)) {
             ApiLogManage::addRentalcars('MakebookingToBrs', json_encode($bookArr), '', '', $request_time, time(), 10);
             //记录日志
         } else {
             ApiLogManage::addRentalcars('MakebookingToBrs', json_encode($bookArr), '', '', $request_time, time(), 1);
             //记录日志
         }
         //rentalcars生成订单号后写订单到bos[S]
         $bos_rs_json = RcManager::MakeBookingToBos($bookArr);
         //rentalcars生成订单号后写订单到bos
         if (!empty($bos_rs_json->FinishPayResult)) {
             $bos_rs_finishPayResult = $bos_rs_json->FinishPayResult;
             $bos_rs_arr = json_decode($bos_rs_finishPayResult, true);
             if (!empty($bos_rs_arr['ErrorCode']) && $bos_rs_arr['ErrorCode'] !== 0) {
                 //给bos下单失败
                 ApiLogManage::addRentalcars('MakeBookingToBos', json_encode($bookArr), '', $bos_rs_finishPayResult, $request_time, time(), 10);
                 //记录日志
             } else {
                 ApiLogManage::addRentalcars('MakeBookingToBos', json_encode($bookArr), '', $bos_rs_finishPayResult, $request_time, time(), 1);
                 //记录日志
             }
         } else {
             ApiLogManage::addRentalcars('MakeBookingToBos', json_encode($bookArr), '', json_encode($bos_rs_json), $request_time, time(), 11);
             //记录日志
         }
         //rentalcars生成订单号后写订单到bos[E]
         ApiLogManage::addRentalcars('MakeBookingToRentalcars', $json_params, '', $Rs, $request_time, time(), 1);
         //记录日志
         echo $Rs;
     } else {
         ApiLogManage::addRentalcars('MakeBookingToRentalcars', $json_params, '', $Rs, $request_time, time(), 10);
         //记录日志
         echo $Rs;
     }
 }