From caa7756833cbb06b67d56f93a0f9e70eb56b2242 Mon Sep 17 00:00:00 2001 From: BryantCancino Date: Tue, 27 Oct 2020 10:43:56 -0600 Subject: [PATCH] gitflow-feature-stash: packagist --- README.md | 137 +++++++++++------------- composer.json | 16 ++- lib/Api/{FICOScoreApi.php => FSApi.php} | 30 +++--- lib/ApiException.php | 2 +- lib/Configuration.php | 4 +- lib/HeaderSelector.php | 2 +- lib/Interceptor/KeyHandler.php | 110 ------------------- lib/Interceptor/MiddlewareEvents.php | 90 ---------------- lib/Interceptor/MyLogger.php | 20 ---- lib/Interceptor/key_pair_gen.sh | 36 ------- lib/Model/CatalogoEstadoCivil.php | 4 +- lib/Model/CatalogoEstados.php | 4 +- lib/Model/CatalogoRazones.php | 4 +- lib/Model/CatalogoResidencia.php | 4 +- lib/Model/CatalogoSexo.php | 4 +- lib/Model/CatalogoTipoAsentamiento.php | 4 +- lib/Model/CatalogoTipoDomicilio.php | 4 +- lib/Model/Domicilio.php | 10 +- lib/Model/Error.php | 4 +- lib/Model/Errores.php | 6 +- lib/Model/ModelInterface.php | 2 +- lib/Model/Persona.php | 12 +-- lib/Model/Peticion.php | 6 +- lib/Model/Respuesta.php | 6 +- lib/Model/Score.php | 6 +- lib/ObjectSerializer.php | 4 +- test/Api/ApiTest.php | 71 ++++++++++++ test/Api/FICOScoreApiTest.php | 72 ------------- 28 files changed, 206 insertions(+), 468 deletions(-) mode change 100644 => 100755 README.md rename lib/Api/{FICOScoreApi.php => FSApi.php} (93%) delete mode 100644 lib/Interceptor/KeyHandler.php delete mode 100644 lib/Interceptor/MiddlewareEvents.php delete mode 100644 lib/Interceptor/MyLogger.php delete mode 100644 lib/Interceptor/key_pair_gen.sh create mode 100644 test/Api/ApiTest.php delete mode 100644 test/Api/FICOScoreApiTest.php diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 58dd272..32f200b --- a/README.md +++ b/README.md @@ -4,20 +4,17 @@ La API de FICO Score determina la probabilidad de incumplimiento de un acreditad ## Requisitos PHP 7.1 ó superior - ### Dependencias adicionales - Se debe contar con las siguientes dependencias de PHP: - ext-curl - ext-mbstring - En caso de no ser así, para linux use los siguientes comandos - ```sh #ejemplo con php en versión 7.3 para otra versión colocar php{version}-curl apt-get install php7.3-curl apt-get install php7.3-mbstring ``` - Composer [vea como instalar][1] - ## Instalación Ejecutar: `composer install` @@ -27,8 +24,9 @@ Ejecutar: `composer install` ### Paso 1. Generar llave y certificado - Se tiene que tener un contenedor en formato PKCS12. -- En caso de no contar con uno, ejecutar las instrucciones contenidas en **lib/Interceptor/key_pair_gen.sh** ó con los siguientes comandos. -- **opcional**: Para cifrar el contenedor, colocar una contraseña en una variable de ambiente. +- En caso de no contar con uno, ejecutar las instrucciones contenidas en **lib/Interceptor/key_pair_gen.sh** o con los siguientes comandos. + +**Opcional**: Para cifrar el contenedor, colocar una contraseña en una variable de ambiente. ```sh export KEY_PASSWORD=your_password ``` @@ -44,7 +42,6 @@ export ALIAS=circulo_de_credito ```sh #Genera la llave privada. openssl ecparam -name secp384r1 -genkey -out ${PRIVATE_KEY_FILE} - #Genera el certificado público. openssl req -new -x509 -days 365 \ -key ${PRIVATE_KEY_FILE} \ @@ -61,7 +58,8 @@ openssl pkcs12 -name ${ALIAS} \ -in ${CERTIFICATE_FILE} -password pass:${KEY_PASSWORD} ``` -### Paso 2. Carga del certificado dentro del portal de desarrolladores +### Paso 2. Cargar el certificado dentro del portal de desarrolladores + 1. Iniciar sesión. 2. Dar clic en la sección "**Mis aplicaciones**". 3. Seleccionar la aplicación. @@ -69,12 +67,13 @@ openssl pkcs12 -name ${ALIAS} \

- 5. Al abrirse la ventana emergente, seleccionar el certificado previamente creado y dar clic en el botón "**Cargar**": + 5. Al abrirse la ventana, seleccionar el certificado previamente creado y dar clic en el botón "**Cargar**":

- +

-### Paso 3. Descarga del certificado de Círculo de Crédito dentro del portal de desarrolladores +### Paso 3. Descargar el certificado de Círculo de Crédito dentro del portal de desarrolladores + 1. Iniciar sesión. 2. Dar clic en la sección "**Mis aplicaciones**". 3. Seleccionar la aplicación. @@ -82,110 +81,98 @@ openssl pkcs12 -name ${ALIAS} \

- 5. Al abrirse la ventana emergente, dar clic al botón "**Descargar**": + 5. Al abrirse la ventana, dar clic al botón "**Descargar**":

- +

- > Es importante que este contenedor sea almacenado en la siguiente ruta: > **/path/to/repository/lib/Interceptor/keypair.p12** > - > Así mismo el certificado proporcionado por círculo de crédito en la siguiente ruta: + > Así mismo el certificado proporcionado por Círculo de Crédito en la siguiente ruta: > **/path/to/repository/lib/Interceptor/cdc_cert.pem** - - En caso de que no se almacene así, se debe especificar la ruta donde se encuentra el contenedor y el certificado. Ver el siguiente ejemplo: - ```php -/** -* Esto es parte del setUp() de las pruebas unitarias. -*/ $password = getenv('KEY_PASSWORD'); -$this->signer = new \FicoscoreV2\Client\Interceptor\KeyHandler( +$this->signer = new KeyHandler( "/example/route/keypair.p12", "/example/route/cdc_cert.pem", $password ); ``` - > **NOTA:** Sólamente en caso de que el contenedor haya cifrado, se debe colocar la contraseña en una variable de ambiente e indicar el nombre de la misma, como se ve en la imagen anterior. - -### Paso 4. Capturar los datos de la petición + > **NOTA:** Solamente en caso de que el contenedor se haya cifrado, debe colocarse la contraseña en una variable de ambiente e indicar el nombre de la misma, como se ve en la imagen anterior. + +### Paso 4. Modificar URL y credenciales -Los siguientes datos a modificar se encuentran en ***test/Api/FICOScoreApiTest.php*** - -Es importante contar con el setUp() que se encargará de inicializar la url, firmar y verificar la petición. Modificar la URL de la petición del objeto ***$config***, como se muestra en el siguiente fragmento de código: + Modificar la URL y las credenciales de acceso a la petición en ***test/Api/ApiTest.php***, como se muestra en el siguiente fragmento de código: ```php -signer = new \FicoscoreV2\Client\Interceptor\KeyHandler(null, null, $password); - - $events = new \FicoscoreV2\Client\Interceptor\MiddlewareEvents($this->signer); - $handler = \GuzzleHttp\HandlerStack::create(); - $handler->push($events->add_signature_header('x-signature')); - $handler->push($events->verify_signature_header('x-signature')); - - $client = new \GuzzleHttp\Client(['handler' => $handler, 'verify' => false]); - $config = new \FicoscoreV2\Client\Configuration(); - $config->setHost('the_url'); + $password = getenv('KEY_PASSWORD'); + $this->signer = new KeyHandler(null, null, $password); + + $events = new MiddlewareEvents($this->signer); + $handler = handlerStack::create(); + $handler->push($events->add_signature_header('x-signature')); + $handler->push($events->verify_signature_header('x-signature')); + $client = new Client(['handler' => $handler]); + + $config = new Configuration(); + $config->setHost('the_url'); + + $this->apiInstance = new Instance($client, $config); + $this->x_api_key = "your_api_key"; + $this->username = "your_username"; + $this->password = "your_password"; +} + ``` + +### Paso 5. Capturar los datos de la petición + +Es importante contar con el setUp() que se encargará de firmar y verificar la petición. + +> **NOTA:** Los datos de la siguiente petición son solo representativos. - $this->apiInstance = new \FicoscoreV2\Client\Api\FICOScoreApi($client,$config); -} -``` ```php +public function testGetReporte() { -setFolio("00000001"); - $request = new \FicoscoreV2\Client\Model\Peticion(); + $persona->setNombres("JUAN"); + $persona->setApellidoPaterno("PRUEBA"); + $persona->setApellidoMaterno("SIETE"); + $persona->setFechaNacimiento("1980-01-07"); + $persona->setRFC("PUAC800107"); - $request->setFolio("XXXXXX"); + $domicilio->setDireccion("INSURGENTES SUR 1001"); + $domicilio->setColoniaPoblacion("INSURGENTES SUR"); + $domicilio->setCiudad("CIUDAD DE MEXICO"); + $domicilio->setDelegacionMunicipio("CIUDAD DE MEXICO"); + $domicilio->setEstado($estado::DF); + $domicilio->setCP("11230"); - $persona = new \FicoscoreV2\Client\Model\Persona(); - $persona->setNombres("XXXXXX"); - $persona->setApellidoPaterno("XXXXXX"); - $persona->setApellidoMaterno("XXXXXX"); - $persona->setFechaNacimiento("DD-MM-YYYY"); - $persona->setRFC("XXXXXX"); + $persona->setDomicilio($domicilio); - $domicilio = new \FicoscoreV2\Client\Model\Domicilio(); - $domicilio->setDireccion("XXXXXX"); - $domicilio->setColoniaPoblacion("XXXXXX"); - $domicilio->setCiudad("XXXXXX"); - $domicilio->setCP("XXXXXX"); - $domicilio->setDelegacionMunicipio("XXXXXX"); - $domicilio->setEstado("XXXXXX"); - - $persona->setDomicilio($domicilio); - - $request->setPersona($persona); + $request->setPersona($persona); try { - $result = $this->apiInstance->getReporte($x_api_key, $username, $password, $request); + $result = $this->apiInstance->getReporte($this->x_api_key, $this->username, $this->password, $request); print_r($result); } catch (Exception $e) { echo 'Exception when calling ApiTest->getReporte: ', $e->getMessage(), PHP_EOL; } } -?> ``` + ## Pruebas unitarias Para ejecutar las pruebas unitarias: - ```sh ./vendor/bin/phpunit ``` - [1]: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos diff --git a/composer.json b/composer.json index c530cab..abc3ff4 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "apihub-cdc/ficoscore-v2", + "name": "apihub-cdc/ficoscore-client", "description": "", "keywords": [ "apihub", @@ -8,13 +8,21 @@ "api" ], "homepage": "http://developer.circulodecredito.com.mx", + "license": "proprietary", + "authors": [ + { + "name": "APIHub and contributors", + "homepage": "https://github.com/APIHub-CdC" + } + ], "require": { "php": ">=5.5", "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", "guzzlehttp/guzzle": "^6.2", - "monolog/monolog": "^1.24" + "monolog/monolog": "^1.24", + "apihub-cdc/signature-manager": "^1.0.0" }, "require-dev": { "phpunit/phpunit": "^4.8", @@ -22,9 +30,9 @@ "friendsofphp/php-cs-fixer": "~2.12" }, "autoload": { - "psr-4": { "FicoscoreV2\\Client\\" : "lib/" } + "psr-4": { "FS\\MX\\Client\\" : "lib/" } }, "autoload-dev": { - "psr-4": { "FicoscoreV2\\Client\\" : "test/" } + "psr-4": { "FS\\MX\\Client\\" : "test/" } } } \ No newline at end of file diff --git a/lib/Api/FICOScoreApi.php b/lib/Api/FSApi.php similarity index 93% rename from lib/Api/FICOScoreApi.php rename to lib/Api/FSApi.php index 415ac4f..1daafd5 100644 --- a/lib/Api/FICOScoreApi.php +++ b/lib/Api/FSApi.php @@ -1,6 +1,6 @@ getReporteRequest($x_api_key, $username, $password, $body); try { $options = $this->createHttpClientOption(); @@ -91,7 +91,7 @@ public function getReporteWithHttpInfo($x_api_key, $username, $password, $body) case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), - '\FicoscoreV2\Client\Model\Respuesta', + '\FS\MX\Client\Model\Respuesta', $e->getResponseHeaders() ); $e->setResponseObject($data); @@ -99,7 +99,7 @@ public function getReporteWithHttpInfo($x_api_key, $username, $password, $body) case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), - '\FicoscoreV2\Client\Model\Errores', + '\FS\MX\Client\Model\Errores', $e->getResponseHeaders() ); $e->setResponseObject($data); @@ -107,7 +107,7 @@ public function getReporteWithHttpInfo($x_api_key, $username, $password, $body) case 401: $data = ObjectSerializer::deserialize( $e->getResponseBody(), - '\FicoscoreV2\Client\Model\Errores', + '\FS\MX\Client\Model\Errores', $e->getResponseHeaders() ); $e->setResponseObject($data); @@ -115,7 +115,7 @@ public function getReporteWithHttpInfo($x_api_key, $username, $password, $body) case 403: $data = ObjectSerializer::deserialize( $e->getResponseBody(), - '\FicoscoreV2\Client\Model\Errores', + '\FS\MX\Client\Model\Errores', $e->getResponseHeaders() ); $e->setResponseObject($data); @@ -123,7 +123,7 @@ public function getReporteWithHttpInfo($x_api_key, $username, $password, $body) case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), - '\FicoscoreV2\Client\Model\Errores', + '\FS\MX\Client\Model\Errores', $e->getResponseHeaders() ); $e->setResponseObject($data); @@ -131,7 +131,7 @@ public function getReporteWithHttpInfo($x_api_key, $username, $password, $body) case 429: $data = ObjectSerializer::deserialize( $e->getResponseBody(), - '\FicoscoreV2\Client\Model\Errores', + '\FS\MX\Client\Model\Errores', $e->getResponseHeaders() ); $e->setResponseObject($data); @@ -139,7 +139,7 @@ public function getReporteWithHttpInfo($x_api_key, $username, $password, $body) case 500: $data = ObjectSerializer::deserialize( $e->getResponseBody(), - '\FicoscoreV2\Client\Model\Errores', + '\FS\MX\Client\Model\Errores', $e->getResponseHeaders() ); $e->setResponseObject($data); @@ -161,7 +161,7 @@ function ($response) { public function getReporteAsyncWithHttpInfo($x_api_key, $username, $password, $body) { - $returnType = '\FicoscoreV2\Client\Model\Respuesta'; + $returnType = '\FS\MX\Client\Model\Respuesta'; $request = $this->getReporteRequest($x_api_key, $username, $password, $body); return $this->client ->sendAsync($request, $this->createHttpClientOption()) diff --git a/lib/ApiException.php b/lib/ApiException.php index 282897b..b6990c2 100644 --- a/lib/ApiException.php +++ b/lib/ApiException.php @@ -1,6 +1,6 @@ logger = new MyLogger('KeyHandler'); - - $keypair_file = __DIR__."/keypair.p12"; - $cert_file = __DIR__."/cdc_cert.pem"; - if ($keypair_route != null && $cdc_cert_route != null) { - $keypair_file = $keypair_route; - $cert_file = $cdc_cert_route; - } - $this->logger->info("Keypair file is: ".$keypair_file); - $this->logger->info("CDC certificate is: ".$cert_file); - $pkcs12 = array(); - try{ - $file_pkcs12 = file_get_contents($keypair_file); - if (isset($file_pkcs12)) { - openssl_pkcs12_read($file_pkcs12, $pkcs12, $password); - if (isset($pkcs12['pkey'])) { - $this->logger->info("Private key loaded"); - $this->private_key = openssl_pkey_get_private($pkcs12['pkey']); - } - else{ - $this->logger->error("Could not read private key, please review your configuration"); - exit(1); - } - } - else{ - $this->logger->error("Could not read pkcs12 file, please review your configuration"); - exit(1); - } - $file_cert = file_get_contents($cert_file); - if (isset($file_cert)) { - $this->logger->info("Public key loaded"); - $this->public_key = openssl_pkey_get_public($file_cert); - } - else{ - $this->logger->error("Could not read public key, please review your configuration"); - exit(1); - } - - } - catch(Exception $e){ - $this->logger->error('Exception at __construct: '.$e->getMessage().PHP_EOL); - } - } - public function getSignatureFromPrivateKey($toSign){ - $signature_text = null; - - try{ - if ($toSign == null) { - $this->logger->error("Empty object"); - exit(1); - } - else if ($this->private_key == null) { - $this->logger->error("Could not read private key, please review your configuration"); - exit(1); - } - else{ - openssl_sign($toSign, $signature, $this->private_key, OPENSSL_ALGO_SHA256); - $signature_text = bin2hex($signature); - if (isset($signature_text)) { - $this->logger->info("The signature is: ".$signature_text); - } - } - - } - catch(Exception $e){ - $this->logger->error('Exception when calling getSignatureFromPrivateKey: '.$e->getMessage().PHP_EOL); - } - return $signature_text; - } - public function getVerificationFromPublicKey($data, $signature){ - $is_verified = false; - try{ - $signature = hex2bin($signature); - if (!isset($signature)) { - $this->logger->error("Signature not given or is malformed"); - } - else if ($this->public_key == null) { - $this->logger->error("Could not read public key, please review your configuration"); - exit(1); - } - else{ - $result = openssl_verify($data, $signature, $this->public_key, OPENSSL_ALGO_SHA256); - $result == 1 ? $is_verified = true : $is_verified = false; - } - }catch (Exception $e){ - $this->logger->error('Exception when calling getVerificationFromPublicKey: '.$e->getMessage().PHP_EOL); - } - - return $is_verified; - } - public function close(){ - return openssl_free_key($this->private_key) && openssl_free_key($this->public_key); - } -} -?> \ No newline at end of file diff --git a/lib/Interceptor/MiddlewareEvents.php b/lib/Interceptor/MiddlewareEvents.php deleted file mode 100644 index a0856c3..0000000 --- a/lib/Interceptor/MiddlewareEvents.php +++ /dev/null @@ -1,90 +0,0 @@ -signer = $signer; - $this->logger = new MyLogger('MiddlewareEvents'); - } - function add_signature_header($header){ - return \GuzzleHttp\Middleware::mapRequest(function (streamRequest $request) use ($header){ - try{ - $this->logger->info("Begining signature..."); - $stream = $request->getBody(); - $payload = $stream->getContents(); - $stream->rewind(); - $signature = $this->signer->getSignatureFromPrivateKey($payload); - }catch (Exception $e) { - $this->logger->error('Exception when calling add_signature_header: '.$e->getMessage().PHP_EOL); - exit(1); - } - return $request->withHeader($header, $signature); - }); - } - function verify_signature_header($header){ - return \GuzzleHttp\Middleware::mapResponse(function (streamResponse $response) use ($header){ - $verified = false; - $super_response = null; - try{ - $this->logger->info("Begining verification..."); - $status_code = $response->getStatusCode(); - $this->logger->info("Status code: ".$status_code); - $stream = $response->getBody(); - $payload = $stream->getContents(); - $stream->rewind(); - $this->logger->info("Payload to verify: ".$payload); - if($status_code == 200){ - if(isset($response->getHeaders()[$header][0])){ - $signature = $response->getHeaders()[$header][0]; - $verified = $this->signer->getVerificationFromPublicKey($payload, $signature); - if(!$verified){ - $this->logger->error("Could not verify the signature"); - $this->logger->warning("The response could be modified"); - } - $super_response = $response; - } - else{ - $this->logger->error("Could not retrieve the signature"); - $new_stream = build_error("500", "No se recibió la firma"); - $super_response = $response->withBody($new_stream)->withStatus(403); - } - } - else{ - $super_response = $response; - } - } - catch (Exception $e) { - $this->logger->error('Exception when calling verify_signature_header: '.$e->getMessage().PHP_EOL); - $super_response = build_error("500", "Error inesperado"); - $super_response = $response->withBody($new_stream)->withStatus(500); - } - return $super_response; - }); - } -} - -function build_error($code, $message){ - $error = new \FicoscoreV2\Client\Model\Error([ - "code" => $code, - "message" => $message - ]); - $errors = new \FicoscoreV2\Client\Model\Errores(["errors" => [$error]]); - $resource = fopen('data://text/plain,' . $errors,'r'); - $new_reponse = new \GuzzleHttp\Psr7\Stream($resource); - - return $new_reponse; -} \ No newline at end of file diff --git a/lib/Interceptor/MyLogger.php b/lib/Interceptor/MyLogger.php deleted file mode 100644 index 4b76b7a..0000000 --- a/lib/Interceptor/MyLogger.php +++ /dev/null @@ -1,20 +0,0 @@ -setFormatter($formatter); - parent::__construct($name, [$streamHandler]); - } -} \ No newline at end of file diff --git a/lib/Interceptor/key_pair_gen.sh b/lib/Interceptor/key_pair_gen.sh deleted file mode 100644 index 5b834cc..0000000 --- a/lib/Interceptor/key_pair_gen.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -PRIVATE_KEY_FILE=pri_key.pem -CERTIFICATE_FILE=certificate.pem -CERTIFICATE_CDC=cdc_cert.pem -SUBJECT=/C=MX/ST=MX/L=MX/O=CDC/CN=CDC -PKCS12_FILE=keypair.p12 -ALIAS=circulo -# KEY_PASSWORD=your_password -# Borra todos los archivos -if [ -f ${PRIVATE_KEY_FILE} ]; then - rm -rf ${PRIVATE_KEY_FILE} -fi - -if [ -f ${CERTIFICATE_FILE} ]; then - rm -rf ${CERTIFICATE_FILE} -fi - -if [ -f ${PKCS12_FILE} ]; then - rm -rf ${PKCS12_FILE} -fi -#Genera la llave privada. -if [ ! -f ${PRIVATE_KEY_FILE} ]; then - openssl ecparam -name secp384r1 -genkey -out ${PRIVATE_KEY_FILE} -fi -#Genera el certificado público. -openssl req -new -x509 -days 365 \ - -key ${PRIVATE_KEY_FILE} \ - -out ${CERTIFICATE_FILE} \ - -subj "${SUBJECT}" -# Genera el archivo pkcs12 a partir de la llave privada y el certificado. -# Deberá empaquetar su llave privada y el certificado. -openssl pkcs12 -name ${ALIAS} \ - -export -out ${PKCS12_FILE} \ - -inkey ${PRIVATE_KEY_FILE} \ - -in ${CERTIFICATE_FILE} -password pass:${KEY_PASSWORD} diff --git a/lib/Model/CatalogoEstadoCivil.php b/lib/Model/CatalogoEstadoCivil.php index a0c8b1e..64dc696 100644 --- a/lib/Model/CatalogoEstadoCivil.php +++ b/lib/Model/CatalogoEstadoCivil.php @@ -1,7 +1,7 @@ 'string', 'delegacion_municipio' => 'string', 'ciudad' => 'string', - 'estado' => '\FicoscoreV2\Client\Model\CatalogoEstados', + 'estado' => '\FS\MX\Client\Model\CatalogoEstados', 'cp' => 'string', 'fecha_residencia' => 'string', 'numero_telefono' => 'string', - 'tipo_domicilio' => '\FicoscoreV2\Client\Model\CatalogoTipoDomicilio', - 'tipo_asentamiento' => '\FicoscoreV2\Client\Model\CatalogoTipoAsentamiento', + 'tipo_domicilio' => '\FS\MX\Client\Model\CatalogoTipoDomicilio', + 'tipo_asentamiento' => '\FS\MX\Client\Model\CatalogoTipoAsentamiento', 'fecha_registro_domicilio' => 'string', 'tipo_alta_domicilio' => 'int', 'id_domicilio' => 'string' diff --git a/lib/Model/Error.php b/lib/Model/Error.php index 3f8cc2c..184bd6c 100644 --- a/lib/Model/Error.php +++ b/lib/Model/Error.php @@ -1,9 +1,9 @@ '\FicoscoreV2\Client\Model\Error[]' + 'errores' => '\FS\MX\Client\Model\Error[]' ]; protected static $apihubFormats = [ diff --git a/lib/Model/ModelInterface.php b/lib/Model/ModelInterface.php index aa2357d..b4e4666 100644 --- a/lib/Model/ModelInterface.php +++ b/lib/Model/ModelInterface.php @@ -1,6 +1,6 @@ 'string', 'curp' => 'string', 'nacionalidad' => 'string', - 'residencia' => '\FicoscoreV2\Client\Model\CatalogoResidencia', - 'estado_civil' => '\FicoscoreV2\Client\Model\CatalogoEstadoCivil', - 'sexo' => '\FicoscoreV2\Client\Model\CatalogoSexo', + 'residencia' => '\FS\MX\Client\Model\CatalogoResidencia', + 'estado_civil' => '\FS\MX\Client\Model\CatalogoEstadoCivil', + 'sexo' => '\FS\MX\Client\Model\CatalogoSexo', 'clave_elector_ife' => 'string', 'numero_dependientes' => 'int', 'fecha_defuncion' => 'string', - 'domicilio' => '\FicoscoreV2\Client\Model\Domicilio' + 'domicilio' => '\FS\MX\Client\Model\Domicilio' ]; protected static $apihubFormats = [ diff --git a/lib/Model/Peticion.php b/lib/Model/Peticion.php index 0fd9fe1..ee4893d 100644 --- a/lib/Model/Peticion.php +++ b/lib/Model/Peticion.php @@ -1,9 +1,9 @@ 'string', - 'persona' => '\FicoscoreV2\Client\Model\Persona' + 'persona' => '\FS\MX\Client\Model\Persona' ]; protected static $apihubFormats = [ diff --git a/lib/Model/Respuesta.php b/lib/Model/Respuesta.php index 3f36bc3..2647497 100644 --- a/lib/Model/Respuesta.php +++ b/lib/Model/Respuesta.php @@ -1,9 +1,9 @@ 'string', 'folio' => 'string', - 'score' => '\FicoscoreV2\Client\Model\Score' + 'score' => '\FS\MX\Client\Model\Score' ]; protected static $apihubFormats = [ diff --git a/lib/Model/Score.php b/lib/Model/Score.php index 5a0d305..259a1ce 100644 --- a/lib/Model/Score.php +++ b/lib/Model/Score.php @@ -1,9 +1,9 @@ 'string', 'valor' => 'int', - 'razones' => '\FicoscoreV2\Client\Model\CatalogoRazones[]' + 'razones' => '\FS\MX\Client\Model\CatalogoRazones[]' ]; protected static $apihubFormats = [ diff --git a/lib/ObjectSerializer.php b/lib/ObjectSerializer.php index 6c796d7..50c27bc 100644 --- a/lib/ObjectSerializer.php +++ b/lib/ObjectSerializer.php @@ -1,6 +1,6 @@ {$discriminator}) && is_string($data->{$discriminator})) { - $subclass = '\FicoscoreV2\Client\Model\\' . $data->{$discriminator}; + $subclass = '\FS\MX\Client\Model\\' . $data->{$discriminator}; if (is_subclass_of($subclass, $class)) { $class = $subclass; } diff --git a/test/Api/ApiTest.php b/test/Api/ApiTest.php new file mode 100644 index 0000000..1ffb6ed --- /dev/null +++ b/test/Api/ApiTest.php @@ -0,0 +1,71 @@ +setHost('the_url'); + $password = getenv('KEY_PASSWORD'); + $this->signer = new KeyHandler(null, null, $password); + $events = new MiddlewareEvents($this->signer); + $handler = HandlerStack::create(); + $handler->push($events->add_signature_header('x-signature')); + $handler->push($events->verify_signature_header('x-signature')); + $client = new Client(['handler' => $handler]); + $this->apiInstance = new Instance($client, $config); + $this->x_api_key = "your_api_key"; + $this->username = "your_username"; + $this->password = "your_password"; + } + + public function testGetReporte() { + + $request = new Peticion(); + $persona = new Persona(); + $domicilio = new Domicilio(); + $estado = new CatalogoEstados(); + + $request->setFolio("00000001"); + + $persona->setNombres("JUAN"); + $persona->setApellidoPaterno("PRUEBA"); + $persona->setApellidoMaterno("SIETE"); + $persona->setFechaNacimiento("1980-01-07"); + $persona->setRFC("PUAC800107"); + + $domicilio->setDireccion("INSURGENTES SUR 1001"); + $domicilio->setColoniaPoblacion("INSURGENTES SUR"); + $domicilio->setCiudad("CIUDAD DE MEXICO"); + $domicilio->setDelegacionMunicipio("CIUDAD DE MEXICO"); + $domicilio->setEstado($estado::DF); + $domicilio->setCP("11230"); + + $persona->setDomicilio($domicilio); + + $request->setPersona($persona); + + try { + $result = $this->apiInstance->getReporte($this->x_api_key, $this->username, $this->password, $request); + print_r($result); + } catch (Exception $e) { + echo 'Exception when calling ApiTest->getReporte: ', $e->getMessage(), PHP_EOL; + } + } +} diff --git a/test/Api/FICOScoreApiTest.php b/test/Api/FICOScoreApiTest.php deleted file mode 100644 index ebe2371..0000000 --- a/test/Api/FICOScoreApiTest.php +++ /dev/null @@ -1,72 +0,0 @@ -signer = new \FicoscoreV2\Client\Interceptor\KeyHandler(null, null, $password); - - $events = new \FicoscoreV2\Client\Interceptor\MiddlewareEvents($this->signer); - $handler = \GuzzleHttp\HandlerStack::create(); - $handler->push($events->add_signature_header('x-signature')); - $handler->push($events->verify_signature_header('x-signature')); - - $client = new \GuzzleHttp\Client(['handler' => $handler, 'verify' => false]); - $config = new \FicoscoreV2\Client\Configuration(); - $config->setHost('the_url'); - - $this->apiInstance = new \FicoscoreV2\Client\Api\FICOScoreApi($client,$config); - } - - - - public function testGetReporte() - { - $x_api_key = "your_api_key"; - $username = "your_username"; - $password = "your_password"; - - - $request = new \FicoscoreV2\Client\Model\Peticion(); - - $request->setFolio("XXXXXX"); - - $persona = new \FicoscoreV2\Client\Model\Persona(); - $persona->setNombres("XXXXXX"); - $persona->setApellidoPaterno("XXXXXX"); - $persona->setApellidoMaterno("XXXXXX"); - $persona->setFechaNacimiento("DD-MM-YYYY"); - $persona->setRFC("XXXXXX"); - - $domicilio = new \FicoscoreV2\Client\Model\Domicilio(); - $domicilio->setDireccion("XXXXXX"); - $domicilio->setColoniaPoblacion("XXXXXX"); - $domicilio->setCiudad("XXXXXX"); - $domicilio->setCP("XXXXXX"); - $domicilio->setDelegacionMunicipio("XXXXXX"); - $domicilio->setEstado("XXXXXX"); - - $persona->setDomicilio($domicilio); - - $request->setPersona($persona); - - - - try { - $result = $this->apiInstance->getReporte($x_api_key, $username, $password, $request); - print_r($result); - } catch (Exception $e) { - echo 'Exception when calling ApiTest->getReporte: ', $e->getMessage(), PHP_EOL; - } - } -}