elavon/tpv

用于连接 Elavon TPV (Santander) 的包

v1.3 2016-10-21 12:18 UTC

This package is auto-updated.

Last update: 2024-09-11 14:16:49 UTC


README

此脚本允许您生成 Elavon(Santander)支付网关的集成表单。

安装

通过 composer 添加依赖项:"elavon/tpv": "1.*"

composer update

或包含包的自动加载器

require __DIR__.'/elavon-tpv/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 Elavon\Tpv\Tpv($config);

# Indicamos los campos para el pedido

$TPV->setFormHiddens(array(
    'ORDER_ID' => '012121323',
    'AMOUNT' => '568,25'
));

# Rellenamos el formulario de pedido y redirigimos al TPV

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

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

# O bien si quieres el formulario completo pero no quieres redirección

echo $TPV->getFormFull();

# O bien si quieres el formulario completo y que realice la redirección al TPV (igual que la primera opción)

die($TPV->getFormFullWithRedirect());

为了进行支付控制,TPV将通过在银行面板中配置的 URL 与我们通信。

此脚本将不可见且不应做出任何响应,仅用于验证支付。

银行始终将通过此 URL 与我们通信,无论正确与否。

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

# 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 Elavon\Tpv\Tpv($config);

# Realizamos la comprobación de la transacción

try {
    $datos = $TPV->checkTransaction($_POST);
    $success = true;
    $message = '';
} catch (Exception $e) {
    $datos = $_POST;
    $success = false;
    $message = $e->getMessage();
}

# Actualización del registro en caso de pago (ejemplo Laravel)

if (empty($datos['ORDER_ID'])) {
    Log::error('No se ha recibido el identificador de pedido');
    exit;
}

try {
    $order = Order::findOrFail($datos['ORDER_ID']);
} catch (Exception $e) {
    Log::error('El pedido indicado no existe');
    exit;
}

$order->tpv_post = json_encode($_POST);
$order->tpv_datos = json_encode($datos);
$order->tpv_respuesta = $datos['RESULT'];
$order->tpv_mensaje = $datos['MESSAGE'];

$order->save();

return $success ? view('tpv-ok') : view('tpv-ko');

如果您想了解更多关于参数或选项的信息,Google 可以帮助您https://www.google.es/search?q=manual+instalaci%C3%B3n+santander+php+filetype%3Apdf