Example #1
0
 /**
  * 12.2将前端下单数据 请求到rentalcars,下单成功后再下单给bog
  * 给bos同步下单接口
  */
 public static function MakeBookingToBos($bookArr)
 {
     $client = new SoapClient(CARRENTALAPI_BOS_URL);
     $bosArr = array();
     $bosArr['AppKey'] = CARRENTALAPI_BOS_APPKEY;
     $bosArr['AppSecrete'] = CARRENTALAPI_BOS_APPSECRETE;
     $bosArr['Request']['VoucherNumber'] = $bookArr['bookingID'];
     //租车订单号
     $bosArr['Request']['CustSource'] = $bookArr['CustSource'];
     //会员ID
     $bosArr['Request']['ContactMan'] = $bookArr['ContactMan'];
     //联系人名称
     $bosArr['Request']['ContactEmail'] = $bookArr['ContactEmail'];
     //联系人邮箱
     $bosArr['Request']['ContactAddress'] = $bookArr['DriverInfo']['Address']['country'] . $bookArr['DriverInfo']['Address']['city'] . $bookArr['DriverInfo']['Address']['street'];
     //联系人地址
     $bosArr['Request']['ContactMobile'] = $bookArr['ContactMobile'];
     //联系人手机
     $bosArr['Request']['ContactFax'] = '';
     //联系人传真
     $bosArr['Request']['ShouldPay'] = $bookArr['Vehicle']['price'];
     //应收总金额.
     $bosArr['Request']['FavorMoney'] = $bookArr['Vehicle']['discount'];
     //优惠总金额
     $bosArr['Request']['RequesOrder_OrderBase'][0]['OrderCode'] = $bookArr['bookingID'];
     //子订单集合 [车辆类型编号]
     $bosArr['Request']['RequesOrder_OrderBase'][0]['ShouldPay'] = $bookArr['Vehicle']['price'];
     //人民币应收金额  【车辆的结算价格】
     $bosArr['Request']['RequesOrder_OrderBase'][0]['USshouldPay'] = $bookArr['Vehicle']['prefPrice'];
     //美元应收金额【车辆的展示价格】
     $bosArr['Request']['RequesOrder_OrderBase'][0]['CurrencyCode'] = $bookArr['Vehicle']['currencyCode'];
     //收款方式【车辆的结算货币】
     $bosArr['Request']['RequesOrder_OrderBase'][0]['PayMode'] = 0;
     //收款方式【车辆的结算货币】
     $bosArr['Request']['RequesOrder_OrderBase'][0]['FavorMoney'] = $bookArr['Vehicle']['discount'];
     //人民币优惠金额【优惠价格(打折金额】
     //$bosArr['Request']['RequesOrder_OrderBase'][0]['USfavorMoney']=0;//美元优惠金额   目前没有些的直接数据,默认为0
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Memo'] = '';
     //备注
     $bosArr['Request']['RequesOrder_OrderBase'][0]['ContactAdress'] = $bookArr['DriverInfo']['Address']['country'] . $bookArr['DriverInfo']['Address']['city'] . $bookArr['DriverInfo']['Address']['street'];
     //联系人地址
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Custs'] = $bookArr['CustName'];
     //客人名称
     /*        $bosArr['Request']['RequesOrder_OrderBase'][0]['PickupShopid']=$bookArr['PickUp']['location_id'];//提车门店ID(车辆列表展示的地点ID)
               $bosArr['Request']['RequesOrder_OrderBase'][0]['DropOffShopid']=$bookArr['DropOff']['location_id'];//还车门店ID(车辆列表展示的地点ID)*/
     $bosArr['Request']['RequesOrder_OrderBase'][0]['PickupShopid'] = $bookArr['PickUp']['location_id_search'];
     //提车门店ID (搜索条件中的地点ID)
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DropOffShopid'] = $bookArr['DropOff']['location_id_search'];
     //还车门店ID(搜索条件中的地点ID)
     $bosArr['Request']['RequesOrder_OrderBase'][0]['CityName'] = '';
     //提车城市
     $pickUp_date = $bookArr['PickUp']['Date']['year'] . '-' . $bookArr['PickUp']['Date']['month'] . '-' . $bookArr['PickUp']['Date']['day'] . ' ' . $bookArr['PickUp']['Date']['hour'] . ':' . $bookArr['PickUp']['Date']['minute'] . ':00';
     //取车时间
     $dropOff_date = $bookArr['DropOff']['Date']['year'] . '-' . $bookArr['DropOff']['Date']['month'] . '-' . $bookArr['DropOff']['Date']['day'] . ' ' . $bookArr['DropOff']['Date']['hour'] . ':' . $bookArr['DropOff']['Date']['minute'] . ':00';
     //还车时间
     $bosArr['Request']['RequesOrder_OrderBase'][0]['PickupTime'] = $pickUp_date;
     //提车时间
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DropffTime'] = $dropOff_date;
     //还车时间
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DropOffAddress'] = '';
     //还车地址[无]
     $bosArr['Request']['RequesOrder_OrderBase'][0]['GroupCode'] = $bookArr['Vehicle']['group'];
     //用车类型
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Automatic'] = $bookArr['Vehicle']['automatic'];
     //排挡类型
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Aircon'] = $bookArr['Vehicle']['aircon'];
     //空调类型
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Petrol'] = $bookArr['Vehicle']['petrol'];
     //燃油类型
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Doors'] = $bookArr['Vehicle']['doors'];
     //车门数量
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Seats'] = $bookArr['Vehicle']['seats'];
     //车辆座位数
     $bosArr['Request']['RequesOrder_OrderBase'][0]['FuelPolicy'] = $bookArr['Vehicle']['fuelPolicy'];
     //车辆的燃料标识符
     $bosArr['Request']['RequesOrder_OrderBase'][0]['FreeCancellation'] = '';
     //是否免费取消
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DriverName'] = $bookArr['DriverInfo']['DriverName']['name'];
     //驾驶员中文名称
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DriverAge'] = $bookArr['DriverInfo']['DriverAge'];
     //驾驶员年龄
     $bosArr['Request']['Chn'] = $bookArr['Chn'];
     //渠道
     //生成车辆的额外服务[S]
     $client_extra_string = '';
     //生成符合bos的额外服务格式   id,name,amount,basePrice,baseCurrency,value,currency;
     if (!empty($bookArr['ExtraList']['Extra'])) {
         $client_extra_arr = $bookArr['ExtraList']['Extra'];
         if (is_array($client_extra_arr)) {
             foreach ($client_extra_arr as $extra_key => $extra_val) {
                 if ($extra_key !== 0) {
                     $client_extra_string .= ';';
                 }
                 $client_extra_string .= $extra_val['id'];
                 $client_extra_string .= ',';
                 $client_extra_string .= !empty($extra_val['name']) ? $extra_val['name'] : '';
                 $client_extra_string .= ',';
                 $client_extra_string .= !empty($extra_val['amount']) ? $extra_val['amount'] : '';
                 $client_extra_string .= ',';
                 $client_extra_string .= !empty($extra_val['currency']) ? $extra_val['currency'] : '';
                 //要添加额外预定产品的展示价格  (即美元价格)
             }
         }
     }
     //生成车辆的额外服务[E]
     $bosArr['Request']['RequesOrder_OrderBase'][0]['ExtraService'] = $client_extra_string;
     //预定的额外服务
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Company'] = $bookArr['Vehicle']['company'];
     //车辆公司名称
     $bosArr['Request']['RequesOrder_OrderBase'][0]['CarCode'] = $bookArr['Vehicle']['id'];
     //车辆类型ID
     $bosArr['Request']['RequesOrder_OrderBase'][0]['CarType'] = $bookArr['Vehicle']['CarType'];
     //车辆类型名称
     //得到取车/还车门店营业时间[S]
     //门店参数格式{"location_id":"1124991","year":"2014","month":"12","day":"1"}
     $pickUpOpenTime_params_RQ = array('location_id' => $bosArr['Request']['RequesOrder_OrderBase'][0]['PickupShopid'], 'year' => $bookArr['PickUp']['Date']['year'], 'month' => $bookArr['PickUp']['Date']['month'], 'day' => $bookArr['DropOff']['Date']['day']);
     $pickUpOpenTime_json_params_RQ = json_encode($pickUpOpenTime_params_RQ);
     $dropOffOpenTime_params_RQ = array('location_id' => $bosArr['Request']['RequesOrder_OrderBase'][0]['DropOffShopid'], 'year' => $bookArr['DropOff']['Date']['year'], 'month' => $bookArr['DropOff']['Date']['month'], 'day' => $bookArr['DropOff']['Date']['day']);
     $dropOffOpenTime_json_params_RQ = json_encode($dropOffOpenTime_params_RQ);
     $pickUpOpenTime_RS = self::PickUpOpenTimeRedis($pickUpOpenTime_json_params_RQ);
     $dropOffOpenTime_RS = self::DropOffOpenTimeRedis($dropOffOpenTime_json_params_RQ);
     $bosArr['Request']['RequesOrder_OrderBase'][0]['PickupWorkDays'] = $pickUpOpenTime_RS;
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DropOffWorkDays'] = $dropOffOpenTime_RS;
     //得到取车/还车门店营业时间[E]
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Logo'] = $bookArr['Vehicle']['companyLogo'];
     //车辆公司logo
     $bosArr['Request']['RequesOrder_OrderBase'][0]['ImageUrl'] = $bookArr['Vehicle']['imageURL'];
     //车型图片路径
     $bosArr['Request']['RequesOrder_OrderBase'][0]['PickUpShopName'] = $bookArr['PickUp']['shopName'];
     //提车门店
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DropOffShopName'] = $bookArr['DropOff']['shopName'];
     //还车门店
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DriverBirthdy'] = $bookArr['DriverInfo']['DriverName']['birthday'];
     //驾驶人出生日期
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DriverMobile'] = $bookArr['DriverInfo']['Telephone'];
     //驾驶人手机
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DriverNameEN'] = $bookArr['DriverInfo']['DriverName']['firstname'] . ' ' . $bookArr['DriverInfo']['DriverName']['lastname'];
     //驾驶员护照英文名
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DriverTitle'] = $bookArr['DriverInfo']['DriverName']['title'];
     //驾驶人性别
     $bosArr['Request']['RequesOrder_OrderBase'][0]['DriverEmail'] = $bookArr['DriverInfo']['Email'];
     //驾驶人邮箱
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Gasbag'] = $bookArr['Vehicle']['airbag'];
     //气囊
     //获取门店的条款信息[S]
     $rentalTermsRQ = json_encode(array('location_id' => $bookArr['PickUp']['location_id'], 'remoteIp' => '106.2.184.106'));
     $rentalTermsRS = RcManager::RentalTermsFilterRQ($rentalTermsRQ);
     $rentalTerms_arr = json_decode($rentalTermsRS, true);
     if ($rentalTerms_arr['status'] && !empty($rentalTerms_arr['data']['Inclusive'])) {
         $rentalTerms_licheng = isset($rentalTerms_arr['data']['Inclusive']['Licheng']) ? $rentalTerms_arr['data']['Inclusive']['Licheng'] : '';
         //里程
         $rentalTerms_baoxian = isset($rentalTerms_arr['data']['Inclusive']['Baoxian']) ? $rentalTerms_arr['data']['Inclusive']['Baoxian'] : '';
         //保险
         $rentalTerms_baoxian = is_array($rentalTerms_baoxian) ? implode(',', $rentalTerms_baoxian) : '';
         $rentalTerms_shuifei = isset($rentalTerms_arr['data']['Inclusive']['Shuifei']) ? $rentalTerms_arr['data']['Inclusive']['Shuifei'] : '';
         //税费
         $rentalTerms_shuifei = is_array($rentalTerms_shuifei) ? implode(',', $rentalTerms_shuifei) : '';
     } else {
         $rentalTerms_licheng = '';
         //里程
         $rentalTerms_baoxian = '';
         //保险
         $rentalTerms_shuifei = '';
         //税费
     }
     $bosArr['Request']['RequesOrder_OrderBase'][0]['InsuranceInfo'] = $rentalTerms_baoxian;
     //保险信息
     $bosArr['Request']['RequesOrder_OrderBase'][0]['Expense'] = $rentalTerms_shuifei;
     //税费
     $bosArr['Request']['RequesOrder_OrderBase'][0]['UnlimitedMileage'] = $rentalTerms_licheng;
     //里程限制
     //获取门店的条款信息[E]
     $bosArr['Request'] = json_encode($bosArr['Request']);
     $bos_json = json_encode($bosArr);
     $bos_result = $client->FinishPay(array('requestString' => $bos_json));
     return $bos_result;
 }
Example #2
0
 public function actionSoap()
 {
     $client = new SoapClient('http://192.168.25.189:1056/Web/CarRental.asmx?WSDL&op=FinishPay');
     $json = '{"AppKey":"14070901","AppSecrete":"FEB497C6D0DB627D93F1811AE794BF14","Request":\\"{\\"VoucherNumber\\":\\"33333\\",\\"CustSource\\":23,\\"ContactMan\\":\\"徐周\\",\\"ContactEmail\\":\\"xuxugoogle@163.com\\",\\"ContactAddress\\":\\"湖北省安陆市\\",\\"ContactMobile\\":\\"1547852333\\",\\"ContactFax\\":\\"373783890\\",\\"ShouldPay\\":1000.0,\\"USshouldPay\\":200.0,\\"FavorMoney\\":90.0,\\"USfavorMoney\\":150.0,\\"RequesOrder_OrderBase\\":[{\\"OrderCode\\":\\"rrgh\\",\\"ShouldPay\\":23.0,\\"USshouldPay\\":100.0,\\"PayMode\\":0,\\"FavorMoney\\":99.0,\\"USfavorMoney\\":33.0,\\"Memo\\":\\"我要开最大的SUV\\",\\"ContactAdress\\":\\"中国北京\\",\\"Custs\\":\\"徐周\\",\\"Deppsit\\":33.0,\\"PickupShopid\\":2,\\"DropOffShopid\\":34,\\"CityName\\":\\"北京\\",\\"PickupTime\\":\\"2014-10-27T15:34:50.8143319+08:00\\",\\"PrckupAddress\\":\\"中国北京\\",\\"DropffTime\\":\\"2014-10-27T15:34:50.8133319+08:00\\",\\"DropOffAddress\\":\\"中国上海\\",\\"CurrencyCode\\":\\"人民币\\",\\"Price\\":333.0,\\"GroupCode\\":\\"SUV\\",\\"Automatic\\":\\"6档\\",\\"Aircon\\":\\"6个\\",\\"Petrol\\":\\"rrr\\",\\"Doors\\":5,\\"Seats\\":6,\\"FuelPolicy\\":\\"eee\\",\\"FreeCancellation\\":\\"是否免费的取消\\",\\"UnlimitedMileage\\":\\"200公里\\",\\"DriverName\\":\\"徐周\\",\\"DriverAge\\":45,\\"ExtraService\\":\\"我要在中国开奔驰\\"}]}\\"}';
     // var_dump($client->__getFunctions());
     $arr = $client->FinishPay(array('requestString' => $json));
     var_dump($arr);
     /* $client=new SoapClient('http://ws.byecity.com/visa/visa.asmx?WSDL');
             $return=$client->GetVisaInfoV2(array(
                 'visaId'=>275
             ));
             var_dump ($return);//获取服务器上提供的方法
     */
 }