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.

ipg2-bdv.php

Además, desde el siguiente enlace podrá descargar una demo completa de uso.

Demo

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->paymentIdstringIdentificador del pago
$response->urlPaymentstringUrl a la que redirigir para realizar el pago.
$response->successboolResultado de la acción
En caso de que la respuesta sea negativa, se obtienen dos valores:
Método Tipo Descripción
$response->responseCodeintCódigo identificador del error.
$response->successboolResultado 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';
    }