ci = &get_instance(); $this->client = new Client(); if (!is_product()) { //测试环境 $this->base_url = 'https://ahohcrm-test.autohome.com.cn/api/community/'; $this->storeId = 50; } $this->ci->load->model('auto/auto_api_log_model'); } //autohomeOrderId Long 否 之家订单id 更新时必传 //outSystemCode int 是 外部系统编号 1001 爱能 //buyerType int 是 购⻋主体 1个⼈ 2公户 //buyerName String 是 客户姓名 不超过50个字符 //buyerPhone String 是 客户⼿机号 //specId int 是 之家⻋型ID 之家提供⻋型数据 //storeId int 是 之家空间站ID 之家提供空间站与⼆⽹城市对应关系 //outOrderId String 是 外部订单号 //outLeadId String 是 外部线索id //outOrderCreateTime Date 是 订单创建时间 yyyy-MM-dd HH:mm:ss //registerCityId int 是 城市ID 需确认是否统⼀ //invoiceAmount double 否 开票价格 //isRegisterInStore int 否 是否店内上牌 (0否1是) //registerAmount double 否 上牌费⽤ //isInsured int 否 是否店内投保商业险 (0否1是) //isLoan int 否 是否贷款 (0否1是) //loanAmount double 否 贷款额度 //loanPeriods int 否 贷款期数 //monthlyPayment double 否 ⽉供 //carryCarDate Date 否 提⻋⽇期 yyyy-MM-dd //payDate Date 否 付款⽇期 yyyy-MM-dd //contractImg String 否 合同凭证 图⽚URL //invoiceImg String 否 发票凭证 图⽚URL //payImg String 否 付款凭证 图⽚URL //outColor String 否 ⻋身颜⾊ //inColor String 否 内饰颜⾊ //deliveryDate Date 否 期望交付时间 yyyy-MM-dd //downpaymentType int 否 ⾸付类型 1 现⾦ 2 0⾸付 3按揭 //confirmAmount double 否 定⾦ //discountAmount double 否 ⻋身优惠 //isLocalInvoice int 否 需要开具本地发票 1 是 0 否 //idCardNo String 否 身份证/营业执照号 //carDocumentImg String 否 ⻋辆证件 图⽚URL //insuranceImg String 否 保险单 图⽚URL //deliveryPhoto String 否 交⻋合照 图⽚URL //priceRightsConfirmDoc String 否 买贵必赔权益确认书⽚ 图⽚URL //返回结果 {"returncode":0,"message":null,"result":{“autohomeOrderId”:3162}} /** * 提交订单信息 * @param $data * @return array|void * @throws GuzzleException */ public function saveOrder($data, $oid) { try { $post_url = $this->base_url . self::SAVE_ORDER; $data['outSystemCode'] = $this->outSystemCode; $data['storeId'] = $this->storeId; //城市转换 $data['registerCityId'] = $this->city_lists[$data['registerCityId']] ?: $this->other_city; debug_log("post_data:" . json_encode($data, JSON_UNESCAPED_UNICODE)); list($req, $header, $httpStatus) = $this->send($post_url, $data, self::METHOD_POST); debug_log("result:" . $req); $reqArr = json_decode($req, true); $log_data = [ 'order_id' => $oid, 'url' => $post_url, 'header' => json_encode($header, JSON_UNESCAPED_UNICODE), 'post_data' => json_encode($data, JSON_UNESCAPED_UNICODE), 'res_http_status' => $httpStatus, 'c_time' => time() ]; $req && $log_data['res'] = $req; $this->ci->auto_api_log_model->add($log_data); if (isset($reqArr['returncode']) && intval($reqArr['returncode']) == 0) { return ['code' => 1, 'msg' => '操作成功', 'data' => $reqArr['result']]; } else { return ['code' => 0, 'msg' => $reqArr['message']]; } } catch (Exception $e) { return ['code' => 0, 'msg' => $e->getMessage()]; } } /** * 参数 * @return string */ public function authorization() { $res = "Basic " . base64_encode($this->key . ':' . $this->secret); return $res; } public function send($url, $data = [], $type = self::METHOD_GET) { try { $options = [ 'headers' => [ 'Content-Type' => 'application/json', 'Authorization' => $this->authorization() ], ]; if ($data) { $options['json'] = $data; } $response = $this->client->request($type, $url, $options); return [$response->getBody()->getContents(), $options, $response->getStatusCode()]; } catch (GuzzleException $e) { debug_log($e->getMessage() . ' URL: ' . $url . ' Data: ' . json_encode($data)); throw $e; } } }