epagado/gateway

用于连接 Epagado Gateway 的软件包

1.0.3 2024-01-19 09:40 UTC

This package is auto-updated.

Last update: 2024-09-19 11:09:01 UTC


README

此脚本允许您生成用于集成 Epagado 支付网关的表单。

安装

通过 composer 添加依赖

composer require epagado/gateway

即时支付示例

此过程用于即时支付,无需未来确认(TransactionType = 0)

# 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

$EP = new Epagado\Gateway($config);

# Indicamos los campos para el pedido

$EP->setFormHiddens(array(
    'Order' => '012121323',
    'Amount' => '568,25',
    'UrlOK' => 'http://dominio.com/direccion-todo-correcto/',
    'UrlKO' => 'http://dominio.com/direccion-error',
    'UrlResp' => 'http://dominio.com/direccion-control-pago'
));

# Imprimimos el pedido el formulario y redirigimos a la TPV

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

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

为了进行支付控制,Epagado将通过在 UrlResp 中指定的 URL 与商家进行通信。

此脚本不可见,也不需要响应任何内容,只需验证支付。

Epagado 总是通过此 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

$EP = new Epagado\Gateway($config);

# Realizamos la comprobación de la transacción

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

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

$Db->update(array(
    'table' => 'tpv',
    'limit' => 1,
    'data' => array(
        'pagado' => $success,
        'mensaje' => $message,
        'fecha_pago' => date('Y-m-d H:i:s'),
        'variables' => json_encode($datos),
        'post' => json_encode($_POST)
    ),
    'conditions' => array(
        'id' => $datos['EP_Order']
    )
));

die();