apihub-cdc / vectores-saldos-client-php
Requires
- php: >=5.5
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^6.2
- monolog/monolog: ^1.24
Requires (Dev)
- friendsofphp/php-cs-fixer: ~2.12
- phpunit/phpunit: ^4.8
- squizlabs/php_codesniffer: ~2.6
This package is not auto-updated.
Last update: 2024-04-25 11:19:41 UTC
README
Vectores de Saldos devuelve un vector con los saldos de la persona en cuestión. La información es mensual, comprende un periodo de 12 meses más el mes en curso e incluye el monto a pagar y los saldos actual y vencido.
Requisitos
PHP 7.1 ó superior
Dependencias adicionales
- Las siguientes dependencias de PHP son requeridas:
- ext-curl
- ext-mbstring
- Ejemplo de instalación (Linux):
apt-get install php7.3-curl apt-get install php7.3-mbstring
- Composer ver como instalar
Instalación
composer install
Guía de inicio
Paso 1. Generación de llave y certificado
- Es necesario contar con un contenedor en formato PKCS12; en caso de no contar con uno, ejecutar el script lib/Interceptor/key_pair_gen.sh ó llevar a cabo los siguientes pasos:
# Definición de nombres de archivos y alias. export PRIVATE_KEY_FILE=pri_key.pem export CERTIFICATE_FILE=certificate.pem export SUBJECT=/C=MX/ST=MX/L=MX/O=CDC/CN=CDC export PKCS12_FILE=keypair.p12 export ALIAS=circulo_de_credito # Opcionalmente, para cifrar el contenedor, colocar una contraseña en una variable de ambiente. export KEY_PASSWORD=your_password #Generación de llave privada. openssl ecparam -name secp384r1 -genkey -out ${PRIVATE_KEY_FILE} #Generación de certificado público. openssl req -new -x509 -days 365 \ -key ${PRIVATE_KEY_FILE} \ -out ${CERTIFICATE_FILE} \ -subj "${SUBJECT}" # Generación de archivo pkcs12 a partir de llave privada y certificado. # Se deberá empaquetar la llave privada y el certificado. openssl pkcs12 -name ${ALIAS} \ -export -out ${PKCS12_FILE} \ -inkey ${PRIVATE_KEY_FILE} \ -in ${CERTIFICATE_FILE} -password pass:${KEY_PASSWORD}
Paso 2. Carga del certificado dentro del portal de desarrolladores
- Iniciar sesión.
- Dar clic en la sección "Mis aplicaciones".
- Seleccionar la aplicación.
- Ir a la pestaña de "Certificados para @tuApp".
- Al abrirse la ventana emergente, 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
- Iniciar sesión.
- Dar clic en la sección "Mis aplicaciones".
- Seleccionar la aplicación.
- Ir a la pestaña de "Certificados para @tuApp".
- Al abrirse la ventana emergente, dar clic al botón "Descargar":
- Es importante que tanto el contenedor, como el certificado proporcionado por Círculo de Crédito, sean almacenados en las siguientes rutas:
- /path/to/repository/lib/Interceptor/keypair.p12
- /path/to/repository/lib/Interceptor/cdc_cert.pem
- En caso de que no sean almacenados de esta forma, es necesario especificar la ruta en la que se encuentra el contenedor y el certificado (véase el ejemplo siguiente):
$password = getenv('KEY_PASSWORD'); $this->signer = new \VectoresSaldos\Client\Interceptor\KeyHandler( "/example/route/keypair.p12", "/example/route/cdc_cert.pem", $password );
NOTA: Solo en caso de que el contenedor se haya cifrado, deberá colocarse la contraseña en una variable de ambiente e indicarse el nombre de la misma.
Paso 4. Capturar los datos de la petición
Los siguientes datos a modificar se encuentran en test/Api/VectoresSaldosApiTest.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:
public function setUp() { $password = getenv('KEY_PASSWORD'); $this->signer = new \VectoresSaldos\Client\Interceptor\KeyHandler(null, null, $password); $events = new \VectoresSaldos\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 \VectoresSaldos\Client\Configuration(); $config->setHost('the_url'); $this->apiInstance = new \VectoresSaldos\Client\Api\VectoresSaldosApi($client); }
public function testGetVectorSaldos() { $x_api_key = "your_api_key"; $username = "your_username"; $password = "your_password"; $body = new \VectoresSaldos\Client\Model\Persona(); $body->setPrimerNombre("XXXXX"); $body->setSegundoNombre("XXXXX"); $body->setApellidoPaterno("XXXXX"); $body->setApellidoMaterno("XXXXX"); $body->setApellidoAdicional("XXXXX"); $body->setFechaNacimiento("YYY-MM-DD"); $body->setRfc("XXXXX"); $body->setCurp("XXXXX"); $domicilio = new \VectoresSaldos\Client\Model\Domicilio(); $domicilio->setDireccion("XXXXX"); $domicilio->setColonia("XXXXX"); $domicilio->setCiudad("XXXXX"); $domicilio->setCodigoPostal("XXXXX"); $domicilio->setMunicipio("XXXXX"); $domicilio->setEstado("XXXX"); $body->setDomicilio($domicilio); try { $result = $this->apiInstance->getVectorSaldos($x_api_key, $username, $password, $body); $this->signer->close(); print_r($result); } catch (Exception $e) { echo 'Exception when calling VectoresSaldosApi->getVectorSaldos: ', $e->getMessage(), PHP_EOL; } } ?>
Pruebas unitarias
- Para ejecutar las pruebas unitarias:
./vendor/bin/phpunit