plexouy/plexo-sdk

Plexo SDK para PHP


License
AGPL-3.0-only

Documentation

Plexo SDK para PHP

Build Status

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

Para correr el SDK, su sistema debe contar con PHP >= 5.6 compilado con el m贸dulo openssl.

Primeros pasos

Instalaci贸n

Instalando el SDK v铆a Composer.

$ composer require plexouy/plexo-sdk

Certificados

El cliente puede desarrollar y registrar su propia clase de almacenamiento de certificados. Esta clase debe implementar la interfaz Plexo\Sdk\Certificate\CertificateStoreInterface.

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

La clase Plexo\Sdk\Certificate\Certificate

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

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.
<?php
// Require the Composer autoloader.
require_once 'vendor/autoload.php';

use Plexo\Sdk;

$client = new Sdk\Client();
Ejemplo: Indicando credenciales al instanciar Client.
<?php
// Require the Composer autoloader.
require_once 'vendor/autoload.php';

use Plexo\Sdk;

$client = new Sdk\Client([
    'client' => $client_name,
    'pem_filename' => $pem_filename,
    'privkey_fingerprint' => $fingerprint,
]);

Clase Plexo\Sdk\Client

M茅todos