El sistema IPGBDV cuenta con su integración en PHP para poder generar pagos en sistemas realizados en dicho lenguaje.
Instalación
El archivo ipg2-bdv.php contiene las clases necesarias para la creación de un pago.
Este debe estar incluido en un directorio de preferencia de su proyecto.
Descarga
Desde el siguiente enlace podrá descargar el archivo ipg2-bdv.php para incluirlo en su proyecto.
Además, desde el siguiente enlace podrá descargar una demo completa de uso.
Configuración
El archivo contiene dos clases IpgBdvPaymentRequest() e IpgBdv(), con las cuales se generará el pago.
IpgBdvPaymentRequest
Esta clase recolecta la información para generar el pago, y al instanciarla se deben configurar los siguientes parámetros.
//Creación de solicitud de pago
$Payment = new IpgBdvPaymentRequest();
$Payment->idLetter= "V"; //Letra de la cédula - V, E o P
$Payment->idNumber= 32321323; //Número de cédula
$Payment->amount= 1000000; //Monto a cobrar, FLOAT
$Payment->currency= 1; //Moneda del pago, 1 - Bolivar Fuerte, 2 - Dolar
$Payment->reference= "FAC0001-00001552"; //Código de referecia o factura
$Payment->title= "Servicio de Cable"; //Título para el pago, Ej: Servicio de Cable
$Payment->description= "Abono mes de marzo 2017"; //Descripción del pago, Ej: Abono mes de marzo 2017
$Payment->email= "loybera@yahoo.com.ar"; //Mail para envio de token si corresponde
$Payment->cellphone= "4122741219"; //telefono para envio de token si corresponde en otros bancos
$Payment->urlToReturn= "www.su-sitio.com/url-de-retorno" //URL de retrono al finalizar el pago
//Solo para personas júridicas
$Payment->rifLetter= "J"; //Letra del RIF - J, G o V
$Payment->rifNumber= "000400415"; //Número del RIF
IpgBdv
Esta clase enviar y genera el pago, recibiendo como parámetros del constructor el usuario y clave del cliente.
//Instanciación de la API de pago con usuario y clave
$PaymentProcess = new IpgBdv ("123456789","XXXXXX");
Crear Pago
La clase IpgBdv contiene el método createPayment, como parámetro recibe un objeto de tipo IpgBdvPaymentRequest (generado anteriormente)
$response = $PaymentProcess->createPayment($Payment);
En caso de que la respuesta sea positiva, se obtienen tres valores:
Método | Tipo | Descripción |
---|---|---|
$response->paymentId | string | Identificador del pago |
$response->urlPayment | string | Url a la que redirigir para realizar el pago. |
$response->success | bool | Resultado de la acción |
En caso de que la respuesta sea negativa, se obtienen dos valores:
Método | Tipo | Descripción |
---|---|---|
$response->responseCode | int | Código identificador del error. |
$response->success | bool | Resultado de la acción |
Bajo estos criterios, podría realizarse verificación de la siguiente manera:
if ($response->success == true) // Se evalúa la respuesta
{
// Se procesó correctamente y es necesario redirigir a la página de pago
header("Location: ".$response->urlPayment);
die();
}
else
{
//Se muestra el codigo de error y el mensaje
echo "Error: ".$response->responseCode;
echo "Mensaje: ". $response->responseMessage;
}
Ejemplo
En el siguiente ejemplo se puede ver como en PHP se puede realizar la generación de un pago mediante un POST a un archivo PHP.
require_once ('ipg2-bdv.php');
if( isset($_POST) )
{
//Creación de solicitud de pago
$Payment = new IpgBdvPaymentRequest();
//Letra de la cédula - V, E o P
$Payment->idLetter= $_POST['identificationNac'];
//Número de cédula
$Payment->idNumber= $_POST['identificationNumber'];
//Monto a cobrar, FLOAT
$Payment->amount= $_POST['amount'];
//Moneda del pago, 1 - Bolivar Fuerte, 2 - Dolar
$Payment->currency= $_POST['currency'];
//Código de referecia o factura
$Payment->reference= $_POST['reference'];
//Título para el pago, Ej: Servicio de Cable
$Payment->title= $_POST['title'];
//Descripción del pago, Ej: Abono mes de marzo 2017
$Payment->description= $_POST['description'];
//email
$Payment->email= "loybera@yahoo.com.ar";
//cellphone
$Payment->cellphone= "4122741219";
//URL de retrono al finalizar el pago
$Payment->urlToReturn= "http://www.google.com?idpay={ID}";
//Instanciación de la API de pago con usuario y clave
$PaymentProcess = new IpgBdv ("1234567","XXXXXX");
$response = $PaymentProcess->createPayment($Payment);
if ($response->success == true)
{
// Se procesó correctamente y es necesario redirigir a la página de pago
header("Location: ".$response->urlPayment); //W
die();
}
else
{
// No se procesó correctamente y se muestra el mensaje y código de error
echo "Error: ".$response->responseCode;
echo "Mensaje: ". $response->responseMessage;
}
}
else{
echo 'La accion no es del tipo POST';
}
Consultar pago
La clase IpgBdv contiene el método checkPayment, como parámetro recibe el Token del pago.
Como respuesta se obtiene la información del estado del pago.
$response = $PaymentProcess->checkPayment($token);
De este mismo se obtienen los siguientes valores valores:
Método | tipo | Descripción |
---|---|---|
$response->status | int | Código del estado del pago. |
$response->success | bool | Resultado de la acción. |
$response->responseCode | int | Código identificador de la respuesta. |
$response->responseMessage | string | Descripción del estado del pago. |
$response->idLetter | string | Letra de la cédula - V, E o P. |
$response->idNumber | int | Número de Cédula |
$response->amount | float | Monto a cobrar. |
$response->currency | int | Moneda del pago. |
$response->reference | string | Código de referecia o factura. |
$response->title | string | Título para el pago. |
$response->description | string | Descripción del pago, |
$response->token | string | Token de pago. |
$response->transactionId | int | Identificador de Transacción. |
$response->paymentMethodCode | int | Identificador de método de pago. |
$response->paymentMethodDescription | string | Descripción de método de pago. |
$response->authorizationCode | int | Código de Autorización. |
$response->paymentMethodNumber | string | PAN enmascarado utilizado en la transaccion. |
$response->paymentDate | string | Fecha de transaccion aceptada. |
Ejemplo
En el siguiente ejemplo se puede ver como obtienen los datos de un pago y se convierten a json para ser mostrados en el cliente.
require_once ('ipg2-bdv.php');
if( isset($_POST) ){
$PaymentProcess = new IpgBdv ("1234567","XXXXXX");//Instanciación de la API de pago con usuario y clave
$response = $PaymentProcess->checkPayment($_POST['token']);
echo json_encode($response);
}
else{
echo 'La acción no es del tipo POST';
}