Example #1
0
 /**
  * 请求第三方进行认证
  * <code>
  * $this->requestApi([['Name' => 'xx', 'CardNum' => 'xx']])
  * </code>
  * @param array $identities
  * @return string
  */
 private function requestApi(array $identities)
 {
     $config = IoC::get('config')->validateConfig;
     $soap = new \SoapClient($config->wsdlURL, ['connection_timeout' => 15]);
     $des = new Des($config->Key, $config->iv);
     $partner = $des->encrypt($config->partner);
     $partnerPW = $des->encrypt($config->partnerPW);
     $type = $des->encrypt($config->type);
     $userData = [];
     foreach ($identities as $one) {
         $userData[] = $this->formatParam($config->type, $one);
     }
     $userData = implode(';', $userData);
     //先将中文转码
     $userData = mb_convert_encoding($userData, "GBK", "UTF-8");
     $userData = $des->encrypt($userData);
     $params = array("userName_" => $partner, "password_" => $partnerPW, "type_" => $type, "param_" => $userData);
     //请求查询
     $method = count($identities) > 1 ? 'queryBatch' : 'querySingle';
     $returnValueKey = count($identities) > 1 ? 'queryBatchReturn' : 'querySingleReturn';
     $data = $soap->{$method}($params);
     $resultXML = $des->decrypt($data->{$returnValueKey});
     $resultXML = mb_convert_encoding($resultXML, "UTF-8", "GBK");
     return $resultXML;
 }
Example #2
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;
 }