PHPackages                             minhaentrada/plexo-sdk - 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. minhaentrada/plexo-sdk

ActiveLibrary

minhaentrada/plexo-sdk
======================

Plexo SDK para PHP

2(4y ago)04AGPL-3.0-onlyPHPPHP &gt;=8

Since May 30Pushed 4y agoCompare

[ Source](https://github.com/Minha-Entrada/PHPClient)[ Packagist](https://packagist.org/packages/minhaentrada/plexo-sdk)[ RSS](/packages/minhaentrada-plexo-sdk/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (4)Versions (14)Used By (0)

Plexo SDK para PHP
==================

[](#plexo-sdk-para-php)

[![Build Status](https://camo.githubusercontent.com/c1d5eadce161748962f752eef2abb02b4ef1c70f1b5bf198f6dd34a62006bf5d/68747470733a2f2f7472617669732d63692e6f72672f4275696c74427942524f532f706c65786f2d73646b2d7068702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/BuiltByBROS/plexo-sdk-php)

**Plexo** es un repositorio de medios de pago. Su objetivo es facilitar la utilización de estos instrumentos permitiendo desacoplar toda complejidad asociada a la integración con los medios de pago.

Requerimientos
--------------

[](#requerimientos)

Para correr el SDK, su sistema debe contar con **PHP &gt;= 5.6** compilado con el módulo openssl.

Primeros pasos
--------------

[](#primeros-pasos)

- Obtener nombre de usuario y certificado emitido por Plexo.
- [Instalar el SDK](#instalaci%C3%B3n).
- [Definir almacenamiento de certificados](#certificados).
- [Fijar credenciales](#credenciales).

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

[](#instalación)

Instalando el SDK vía Composer.

```
$ composer require plexophp/php-sdk
```

Certificados
------------

[](#certificados)

El cliente puede desarrollar y registrar su propia clase de almacenamiento de certificados. Esta clase debe implementar la interfaz *[Plexo\\Sdk\\Certificate\\CertificateStoreInterface](src/Certificate/CertificateProviderInterface.php)*.

De esta manera se evitará la realización de peticiones adicionales a la API, dándole al cliente la libertad de optar por el modo y lugar de almacenamiento más conveniente para él (base de datos, sistema de archivos, APIs, etc).

[Ver ejemplo](doc/CertificateProvider/example.md)

### La clase Plexo\\Sdk\\Certificate\\Certificate

[](#la-clase-plexosdkcertificatecertificate)

Representa un certificado, conteniendo su fingerprint, clave pública y/o clave privada.

- **fingerprint** (string) SHA1 en hexadecimal.
- **cert** (string) Clave pública en Base 64, conteniendo las declaraciones "-----BEGIN CERTIFICATE-----" y "-----END CERTIFICATE-----".
- **pkey** (string) Clave privada en Base 64, conteniendo las declaraciones "-----BEGIN PRIVATE KEY-----" y "END PRIVATE KEY".

Credenciales
------------

[](#credenciales)

La autenticación se realiza a través de un nombre de usuario y verificación de firmas. Todas las peticiones son firmadas utilizando una clave privada emitida por Plexo.

**Nombre de usuario**

El nombre de usuario puede ser configurado fijando la variable de entorno *PLEXO\_CREDENTIALS\_CLIENT* o indicado en el código al instanciar la clase *Plexo\\Sdk\\Client* con la opción *client*.

**Clave privada**

La configuración de la clave privada puede realizarse de las siguientes tres maneras, tanto como variables de entorno o en el código al instanciar la clase *Plexo\\Sdk\\Client*:

**Opción 1. Fingerprint**: Si ha registrado su clase de almacenamiento de certificados, el SDK consultará el método *getByFingerprint*, pasando como parámetro el fingerprint, para obtener la clave privada almacenada. Su clase debe retornar un objeto del tipo *Plexo\\Sdk\\Certificate\\Certificate* conteniendo la clave privada extraída del archivo pfx.

- Variable de entorno:
    - *PLEXO\_CREDENTIALS\_PRIVKEY\_FINGERPRINT*
- Opción del constructor:
    - *privkey\_fingerprint*

**Opción 2. PEM/Fingerprint**: Si la clave privada fue extraída del archivo pfx a un archivo pem, agregue la ruta del archivo pem y el SDK utilizará clave contenida.

- Variables de entorno:
    - *PLEXO\_CREDENTIALS\_PEM\_FILENAME*
    - *PLEXO\_CREDENTIALS\_PRIVKEY\_FINGERPRINT*
- Opción del constructor:
    - *pem\_filename*
    - *privkey\_fingerprint*

**Opcion 3. PFX/Passphase** (más lento): Si no ha extraído los datos del archivo pfx, puede indicar la ruta a ese archivo y su contraseña de instalación.

- Variables de entorno:
    - *PLEXO\_CREDENTIALS\_PFX\_FILENAME*
    - *PLEXO\_CREDENTIALS\_PFX\_PASSPHRASE*
- Opción del constructor:
    - *pfx\_filename*
    - *pfx\_passphrase*

##### Ejemplo: Utilizando variables de entorno.

[](#ejemplo-utilizando-variables-de-entorno)

```
