Example #1
0
 /**
  * @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;
 }