PHPackages                             apihub-cdc/security-test-peru-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. apihub-cdc/security-test-peru-client

ActiveLibrary[API Development](/categories/api)

apihub-cdc/security-test-peru-client
====================================

1.0.1(5y ago)03PHPPHP &gt;=5.5CI failing

Since Apr 17Pushed 5y ago3 watchersCompare

[ Source](https://github.com/APIHub-CdC/security-test-peru-client-php)[ Packagist](https://packagist.org/packages/apihub-cdc/security-test-peru-client)[ Docs](http://developer.circulodecredito.com.mx)[ RSS](/packages/apihub-cdc-security-test-peru-client/feed)WikiDiscussions master Synced today

READMEChangelog (2)Dependencies (6)Versions (7)Used By (0)

security-test-peru-client-php
=============================

[](#security-test-peru-client-php)

La prueba de seguridad es un servicio "echo" que se encargará de verificar que el mensaje y la firma correspondan a tu aplicación; asimismo retornará el mismo mensaje con nuestra respectiva firma, que también deberás verificar.

Requisitos
----------

[](#requisitos)

PHP 7.1 ó superior

### Dependencias adicionales

[](#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

```
#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](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos)

Instalación
-----------

[](#instalación)

Ejecutar: `composer install`

Guía de inicio
--------------

[](#guía-de-inicio)

### Paso 1. Generar llave y certificado

[](#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.

```
export KEY_PASSWORD=your_password
```

- Definir los 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
```

- Generar llave y certificado.

```
#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} \
    -out ${CERTIFICATE_FILE} \
    -subj "${SUBJECT}"
```

- Generar contenedor en formato PKCS12.

```
# Genera el archivo pkcs12 a partir de la llave privada y el certificado.
# 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

[](#paso-2-carga-del-certificado-dentro-del-portal-de-desarrolladores)

1. Iniciar sesión.
2. Dar clic en la sección "**Mis aplicaciones**".
3. Seleccionar la aplicación.
4. Ir a la pestaña de "**Certificados para @tuApp**".  [![](https://github.com/APIHub-CdC/imagenes-cdc/raw/master/applications.png)](https://github.com/APIHub-CdC/imagenes-cdc/blob/master/applications.png)
5. Al abrirse la ventana emergente, seleccionar el certificado previamente creado y dar clic en el botón "**Cargar**":  [![](https://github.com/APIHub-CdC/imagenes-cdc/raw/master/upload_cert.png)](https://github.com/APIHub-CdC/imagenes-cdc/blob/master/upload_cert.png)

### Paso 3. Descarga del certificado de Círculo de Crédito dentro del portal de desarrolladores

[](#paso-3-descarga-del-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.
4. Ir a la pestaña de "**Certificados para @tuApp**".  [![](https://github.com/APIHub-CdC/imagenes-cdc/raw/master/applications.png)](https://github.com/APIHub-CdC/imagenes-cdc/blob/master/applications.png)
5. Al abrirse la ventana emergente, dar clic al botón "**Descargar**":  [![](https://github.com/APIHub-CdC/imagenes-cdc/raw/master/download_cert.png)](https://github.com/APIHub-CdC/imagenes-cdc/blob/master/download_cert.png)

> 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: **/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:

```
/**
* Esto es parte del setUp() de las pruebas unitarias.
*/
$password = getenv('KEY_PASSWORD');
$this->signer = new \SecurityTestPeru\Client\Interceptor\KeyHandler(
    "/example/route/keypair.p12",
    "/example/route/cdc_cert.pem",
    $password
);
```

> **NOTA:** Sólamente en caso de que el contenedor haya sido 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. Modificar URL

[](#paso-4-modificar-url)

Modificar la URL de la petición en ***lib/Configuration.php*** en la línea 19, como se muestra en el siguiente fragmento de código:

```
protected $host = 'the_url';
```

### Paso 5. Capturar los datos de la petición

[](#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.

```
