PHP code example of drauta / redsys-tpv

1. Go to this page and download the library: Download drauta/redsys-tpv library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

drauta / redsys-tpv example snippets


# Incluye tu arquivo de configuración (copia config.php para config.local.php)

$config = camos los campos para el pedido

$TPV->setFormHiddens(array(
    'TransactionType' => '0',
    'MerchantData' => 'Televisor de 50 pulgadas',
    'Order' => '012121323',
    'Amount' => '568,25',
    'UrlOK' => 'http://dominio.com/direccion-todo-correcto/',
    'UrlKO' => 'http://dominio.com/direccion-error',
    'MerchantURL' => 'http://dominio.com/direccion-control-pago'
));

# Imprimimos el pedido el formulario y redirigimos a la TPV

echo '<form action="'.$TPV->getPath('/realizarPago').'" method="post">'.$TPV->getFormHiddens().'</form>';

die('<script>document.forms[0].submit();</script>');

# Incluye tu arquivo de configuración (copia config.php para config.local.php)

$config = izamos la comprobación de la transacción

try {
    $TPV->checkTransaction($_POST);
} catch (\Exception $e) {
    file_put_contents(__DIR__.'/logs/errores-tpv.log', $e->getMessage(), FILE_APPEND);
    die();
}

# Actualización del registro en caso de pago (ejemplo usando mi framework)

$Db->update(array(
    'table' => 'tpv',
    'limit' => 1,
    'data' => array(
        'operacion' => $_POST['Ds_TransactionType'],
        'fecha_pago' => date('Y-m-d H:i:s')
    ),
    'conditions' => array(
        'id' => $_POST['Ds_Order']
    )
));

die();

# Incluye tu arquivo de configuración (copia config.php para config.local.php)

$config = camos los campos para la confirmación del pago

$TPV->sendXml(array(
    'TransactionType' => '2', // Código para la Confirmación del cargo
    'MerchantURL' => 'http://dominio.com/direccion-control-pago-xml', // A esta URL enviará el banco la confirmación del cobro
    'Amount' => '568,25', // La cantidad final a cobrar
    'Order' => '012121323', // El número de pedido, que debe existir en el sistema bancario a través de una autorización previa
    'MerchantData' => 'Televisor de 50 pulgadas',
));

# Incluye tu arquivo de configuración (copia config.php para config.local.php)

$config = nemos los datos remitidos por el banco en formato `array`

$datos = $TPV->xmlString2array($_POST['datos']);

# Realizamos la comprobación de la transacción

try {
    $TPV->checkTransaction($datos);
} catch (\Exception $e) {
    file_put_contents(__DIR__.'/logs/errores-tpv.log', $e->getMessage(), FILE_APPEND);
    die();
}

# Actualización del registro en caso de pago (ejemplo usando mi framework)

$Db->update(array(
    'table' => 'tpv',
    'limit' => 1,
    'data' => array(
        'pagado' => 1,
        'operacion' => $datos['Ds_TransactionType'],
        'fecha_pago' => date('Y-m-d H:i:s')
    ),
    'conditions' => array(
        'id' => $datos['Ds_Order']
    )
));

die();

$TPV = new Redsys\Tpv\Tpv(array(
    'environments' => array(
        'local' => 'http://redsys-fake.mydomain.com'
    ),

    'Environment' => 'local',
    'Key' => 'asdfghjkd0123456789', // Debe coincidir con el valor de Key del entorno de pruebas

    ....
));