/** * 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; }
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);//获取服务器上提供的方法 */ }