/** * @param array $param 查询参数(二维数组) * @return string */ function getData($param) { $config = $this->getDI()->getConfig()->validateConfig; try { $soap = new \SoapClient($config->wsdlURL, array("connection_timeout" => 15)); } catch (Exception $e) { return "LinkError"; } $DES = new Des($config->Key, $config->iv); //@todo 加密数据 $partner = $DES->encrypt($config->partner); $partnerPW = $DES->encrypt($config->partnerPW); $type = $DES->encrypt($config->type); $userData = ''; if (count($param) > 1) { foreach ($param as $k => $v) { $userData .= $this->formatParam($config->type, $v) . ';'; } $userData = substr($userData, 0, -1); } else { $userData = $this->formatParam($config->type, $param[0]); } //先将中文转码 $userData = mb_convert_encoding($userData, "GBK", "UTF-8"); $userData = $DES->encrypt($userData); $params = array("userName_" => $partner, "password_" => $partnerPW, "type_" => $type, "param_" => $userData); //请求查询 if (count($param) > 1) { //传入的数组有多条数据就查询多个 $data = $soap->queryBatch($params); $resultXML = $DES->decrypt($data->queryBatchReturn); } else { $data = $soap->querySingle($params); $resultXML = $DES->decrypt($data->querySingleReturn); } //@todo 解密数据 $resultXML = mb_convert_encoding($resultXML, "UTF-8", "GBK"); return $resultXML; }