Download
<p align="center">
Documentación de la librería <b>Instapago</b>
</p>
Table of Contents
Información General
Credenciales de Pruebas
* keyId = 74D4A278-C3F8-4D7A-9894-FA0571D7E023
* publicKeyId = e9a5893e047b645fed12c82db877e05a
> Importante: Debes solicitar las llaves públicas y privadas (publicKeyId y keyId ) a Instapago. Aquí puedes encontrar mayor información.
Parámetros _requeridos_ para crear un pago
-
`cardHolder`: Nombre del Tarjeta habiente.
-
`cardHolderId`: Cédula del Tarjeta Habiente,
-
`cardNumber`: Número de la tarjeta de crédito, 16 dígitos sin separadores.
-
`cvc`: Código de validación de la Tarjeta de crédito.
-
`expirationDate`: Fecha de Vencimiento de la tarjeta. Formato MM/YYYY. Por Ejemplo: 10/2015.
-
`amount`: Monto a Debitar, formato: `0.00` (punto como separador decimal, sin separador de miles).
-
`description`: Texto con la descripción de la operación.
-
`IP`: Dirección IP del cliente.
De ahora en más usaremos $paymentData para referirnos a el arreglo con los parámetros antes mencionados.
$paymentData = [
'amount' => '200',
'description' => 'test',
'cardHolder' => 'jon doe',
'cardHolderId' => '11111111',
'cardNumber' => '4111111111111111',
'cvc' => '123',
'expirationDate' => '12/2019',
'IP' => '127.0.0.1',
];
Retornos
Todos los métodos del api devuelven un arreglo asociativo con el siguiente esquema:
-
`code`: (numeric) Codigo de respuesta de Instapago.
-
`msg_banco`: (string) Mensaje del banco respecto a la transacción.
-
`voucher`: (string) Voucher (muy parecido al ticket que emite el POS en Venezuela) en html.
-
`id_pago`: (string) Identificador del pago en la plataforma de Instapago.
-
`reference`: (numeric) Referencia del pago en la red bancaria.
Manejo de errores
La excepción base de la librería es \Socialgest\Instapago\Instapago\Exceptions\InstapagoException y reporta errores generales con instapago, y de ella se derivan 2 excepciones de la siguiente manera.
-
`\Socialgest\Instapago\Instapago\Exceptions\TimeoutException`: es lanzada cuando es imposible conectarse al api de Instapago y expira el tiempo de carga.
Códigos de respuesta
Para todas las transacciones realizadas bajo el API de Instapago, los códigos HTTP de respuestas corresponden a los siguientes estados:
> Importante: Si recibe un código de respuesta diferente a los antes descritos deben ser tomados como errores de protocolo HTTP.
Tarjetas de prueba
Para realizar las pruebas, se provee de los siguientes datos para comprobar la integracio?n:
Pueden indicar cualquier valor para Ce?dula o RIF, Fecha de Vencimiento y CVC:
-
Visa: ```4111111111111111```
-
American Express: ```378282246310005```
-
MasterCard: ```5105105105105100```
-
Sambil: ```8244001100110011``
-
Rattan: ```8244021100110011```
-
Locatel: ```8244041100110011```
API
Instanciación
En el arreglo providers del archivo config/app.php agregar:
Socialgest\Instapago\InstapagoServiceProvider::class
Además, si debes (te recomendamos que no), agrega la clase Facade al array aliases enconfig/app.php así:
'Instapago' => Socialgest\Instapago\Facades\Instapago::class
Pero sería mejor inyectar la clase, así (esto debería ser familiar):
use Socialgest\Instapago\Instapago;
Set in .env
INSTAPAGO_KEY_ID = 74D4A278-C3F8-4D7A-9894-FA0571D7E023
INSTAPAGO_PUBLIC_KEY_ID = e9a5893e047b645fed12c82db877e05a
Crear un Pago Directo
Efectúa un pago directo con tarjeta de crédito, los pagos directos son inmediatamente debitados del cliente y entran en el proceso bancario necesario para acreditar al beneficiario.
use Socialgest\Instapago\Instapago;
try{
$api = new Instapago();
$respuesta = $api->directPayment($paymentData);
// hacer algo con $respuesta
}catch(\Instapago\Exceptions\InstapagoException $e){
echo "Ocurrió un problema procesando el pago.";
// manejar el error
} catch(\Socialgest\Instapago\Instapago\Exceptions\TimeoutException $e){
echo "Ocurrió un problema procesando el pago.";
// manejar el error
}
Reservar un Pago
Efectúa una reserva o retención de pago en la tarjeta de crédito del cliente, la reserva diferirá los fondos por un tiempo (3 días máximo segun fuentes extraoficiales), en el plazo en el que los fondos se encuentren diferidos, ni el beneficiario ni el cliente poseen el dinero. El dinero será tramitado al beneficiario una vez completado el pago, o de lo contrario será acreditado al cliente de vuelta si no se completa durante el plazo o si se cancela el pago.
use Socialgest\Instapago\Instapago;
try{
$api = new Instapago();
$respuesta = $api->reservePayment($paymentData);
// hacer algo con $respuesta
}catch(\Instapago\Exceptions\InstapagoException $e){
echo "Ocurrió un problema procesando el pago.";
// manejar el error
} catch(\Socialgest\Instapago\Instapago\Exceptions\TimeoutException $e){
echo "Ocurrió un problema procesando el pago.";
// manejar el error
}
Completar Pago
Éste método permite cobrar fondos previamente retenidos.
-
`id`: Identificador único del pago.
-
`amount`: Monto por el cual se desea procesar el pago final.
use Socialgest\Instapago\Instapago;
try{
$api = new Instapago();
$respuesta = $api-continuePayment([
'id' => 'af614bca-0e2b-4232-bc8c-dbedbdf73b48',
'amount' => '200.00'
]);
}catch(\Instapago\Exceptions\InstapagoException $e){
// manejar errores
} catch(\Socialgest\Instapago\Instapago\Exceptions\TimeoutException $e){
echo "Ocurrió un problema procesando el pago.";
// manejar el error
}
Información de un Pago
Consulta información sobre un pago previamente generado.
use Socialgest\Instapago\Instapago;
try{
$api = new Instapago();
$idPago = 'af614bca-0e2b-4232-bc8c-dbedbdf73b48';
$respuesta = $api->query($idPago);
}catch(\Instapago\Exceptions\InstapagoException $e){
// manejar errores
} catch(\Socialgest\Instapago\Instapago\Exceptions\TimeoutException $e){
echo "Ocurrió un problema procesando el pago.";
// manejar el error
}
Devuelve la misma respuesta que los métodos de crear pagos.
Anular Pago
Este método permite cancelar un pago, haya sido directo o retenido.
use Socialgest\Instapago\Instapago;
try{
$api = new Instapago();
$idPago = 'af614bca-0e2b-4232-bc8c-dbedbdf73b48';
$info = $api->cancel($idPago);
}catch(\Instapago\Exceptions\InstapagoException $e){
// manejar errores
} catch(\Socialgest\Instapago\Instapago\Exceptions\TimeoutException $e){
echo "Ocurrió un problema procesando el pago.";
// manejar el error
}
Devuelve la misma respuesta que los métodos de crear pagos.
Licencia
Licencia MIT :copyright: 2015
|