ceca/tpv

用于连接 CECA TPV 的包

1.3.0 2019-12-11 13:16 UTC

This package is auto-updated.

Last update: 2024-09-12 00:14:06 UTC


README

此脚本允许您生成 CECA 支付网关集成所需的表单

即时支付示例

# Sólo incluimos el autoload si la instalación no se realiza a través de Composer

include (__DIR__.'/src/autoload.php');

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

$config = require (__DIR__.'/config.local.php');

# Cargamos la clase con los parámetros base

$TPV = new Ceca\Tpv\Tpv($config);

# Indicamos los campos para el pedido

$TPV->setFormHiddens(array(
    'Num_operacion' => '012121323',
    'Descripcion' => 'Televisor de 50 pulgadas',
    'Importe' => '568,25',
    'URL_OK' => 'http://dominio.com/direccion-todo-correcto/',
    'URL_NOK' => 'http://dominio.com/direccion-error'
));

# Imprimimos el pedido el formulario y redirigimos a la TPV

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

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

如果已启用“在线通信 OK”选项,TPV 将通过“在线 OK URL”中指定的 URL 与我们的网站通信,以验证和验证支付。

此脚本不应通过链接访问,并且仅对 CECA 用于“所需响应 OK”的代码做出响应。

如果银行已经验证了卡,它将通过此 URL 与我们通信,并等待我们的响应以授权扣款。

我们可以编写一个脚本(例如,在示例中为 http://dominio.com/direccion-control-pago)以以下方式验证支付

include (__DIR__.'/src/autoload.php');

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

$config = require (__DIR__.'/config.local.php');

# Cargamos la clase con los parámetros base

$TPV = new Ceca\Tpv\Tpv($config);

# Realizamos 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

$order = Orders::where('referencia', $_POST['Num_operacion'])->firstOrFail();

$order->referencia = $_POST['Referencia'];
$order->fecha_pago = date('Y-m-d H:i:s');

$order->save();

# Finalizamos con la respuesta del código de todo correcto

die($TPV->successCode());

有关 TPV 集成的更多信息请参阅