Skip to content

mrjeanp/azul-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

azul-php

Cualquiera que haya trabajado con la API de AZUL conoce bien las inconsistencias que existen en este servicio, las cuales generan grandes frustraciones al momento de desarrollar. Esta librería te puede ayudar a evitar la mayoría de frustraciones.

La documentación también ha sido mejorada con respecto al PDF original de AZUL, con una mejor organización del texto y una referencia interactiva de la API.

Consulta esta wiki para saber más sobre AZUL Webservices.

Instalación

  1. Instala composer.
  2. $ composer require mrjeanp/azul-php
  3. $ composer install

Cómo usarla

<?php
require_once __DIR__."/vendor/autoload.php";

use Azul\Azul;
use Azul\AzulException;

try {
  $azul = new Azul;
  $azul->set('auth1', 'test'); // Auth1 otorgado por AZUL.
  $azul->set('auth2', 'test'); // Auth2 otorgado por AZUL.
  $azul->set('domain', 'pruebas'); // Entorno (pruebas|pagos)
  $azul->set('certificate_path', '/absolute/path/to/azul.crt');
  $azul->set('key_path', '/absolute/path/to/azul.key');
  
  $azul->Store = /* Merchant ID (MID) otorgado por AZUL */;
  
  // Ejecutar transacción
  $sale = $azul->sale([
    'CardNumber' => ...,
    'Expiration' => ...,
    'CVC' => ...,
    'Amount' => 2000.00,
    'Itbis' => 1000.00,
    'CustomOrderId' => 'SALE-1',
  ]);
  
  // Resultado de la transacción
  var_dump($sale);
}
catch (AzulException $e) {
  // Detalles del error
  var_dump($e->getDetails());
}

Sale

Crea una transacción de venta usando la información de una tarjeta o un token del DataVault.

 $sale = $azul->sale([
    'CardNumber' => $cc_number,
    'Expiration' => $cc_exp,
    'CVC' => $cc_cvc,
    'Amount' => 2000.00,
    'Itbis' => 1000.00,
    'CustomOrderId' => 'SALE-1',
  ]);
  
  $sale = $azul->sale([
    'DataVaultToken' => $data_vault_token,
    'Amount' => 2000.00,
    'Itbis' => 1000.00,
    'CustomOrderId' => 'SALE-2',
  ]);

Hold

Crea una transacción en HOLD (en espera) usando la info. de una tarjeta o token del DataVault.

 $hold = $azul->hold([
    'CardNumber' => $cc_number,
    'Expiration' => $cc_exp,
    'CVC' => $cc_cvc,
    'Amount' => 2000.00,
    'Itbis' => 1000.00,
    'CustomOrderId' => 'HOLD-1',
  ]);
  
  $hold = $azul->hold([
    'DataVaultToken' => $data_vault_token,
    'Amount' => 2000.00,
    'Itbis' => 1000.00,
    'CustomOrderId' => 'HOLD-2',
  ]);

Cancel

Cancela una transacción en HOLD.

 $cancel = $azul->cancel([
   'CustomOrderId' => $hold->CustomOrderId
 ]);

Post

Confirma una transacción en HOLD.

 $post = $azul->post([
    'AzulOrderId' => $hold->AzulOrderId,
    'OriginalDate' => $hold->DateTime,
    'Amount' => 2000.00,
    'Itbis' => 1000.00,
  ]);

Verify

Verifica una transacción previa (HOLD o SALE)

 $verify = $azul->verify([
    'CustomOrderId' => $sale->CustomOrderId
  ]);

Refund

Crea una transacción de reembolso.

 $refund = $azul->refund([
    'AzulOrderId' => $sale->AzulOrderId
    'OriginalDate' => $sale->DateTime,
    'Amount' => 2000.00,
    'Itbis' => 1000.00,
  ]);

Create Token

Crea un token del DataVault.

 $created = $azul->createToken([
    'CardNumber' => $cc_number,
    'Expiration' => $cc_exp,
    'CVC' => $cc_cvc,
  ]);

Delete Token

Elimina un token del DataVault.

 $deleted = $azul->deleteToken([
    'DataVaultToken' => $created->DataVaultToken
  ]);

Pruebas

Para correr pruebas, crea un archivo llamado test.env y copia el contenido de test.env.example en ese archivo, luego los valores correspondientes a tu entorno.

Ejectuta:

$ ./vendor/bin/phpunit

© MIT License