ssheduardo/redsys-laravel

Importe 0 sin asignar

Closed this issue · 3 comments

Buenas tardes,

Estoy intentando implementar el pago con redsys en una pequeña aplicación hecha con Laravel, pero incluso con el entorno de TEST estoy teniendo problemas, al intentar hacer el pago, me aparece importe 0 sin asignar:

image

Esta es la llamada a su clase:

            $key = config('redsys.key');
            $display = false;
            Redsys::setAmount(11.0);
            Redsys::setOrder(time());
            Redsys::setMerchantcode(config('redsys.merchantcode'));
            Redsys::setCurrency('978');
            Redsys::setTransactiontype('0');
            Redsys::setTerminal('1');
            Redsys::setMethod('T'); //Solo pago con tarjeta, no mostramos iupay
            Redsys::setNotification(config('redsys.url_notification')); //Url de notificacion
            Redsys::setUrlOk(config('redsys.url_ok')); //Url OK
            Redsys::setUrlKo(config('redsys.url_ko')); //Url KO
            Redsys::setVersion('HMAC_SHA256_V1');
            Redsys::setTradeName(config('redsys.tradename'));
            Redsys::setTitular(config('redsys.titular'));
            Redsys::setProductDescription('Transfers');
            Redsys::setEnviroment(config('redsys.environment')); //Entorno test
            $signature = Redsys::generateMerchantSignature($key);
            Redsys::setMerchantSignature($signature);
            Redsys::setAttributesSubmit('btn_submit', 'btn_id', 'Enviar', 'display:none');
            return Redsys::executeRedirection();

El archivo de configuración lo tengo así:

    'key' => env('REDSYS_KEY', 'sq7HjrUOBfKmC576ILgskDsrU870gJ7'),
    'url_notification' => env('REDSYS_URL_NOTIFICATION', 'http://example.com/redsys/notification'),
    'url_ok' => env('REDSYS_URL_OK', 'http://example.com/redsys/notification'),
    'url_ko' => env('REDSYS_URL_KO', 'http://example.com/redsys/notification'),
    'merchantcode' => env('REDSYS_MERCHANT_CODE', '337001XXX'),
    'terminal' => env('REDSYS_TERMINAL', '1'),
    'environment' => env('REDSYS_ENVIROMENT', 'test'),
    'tradename' => env('REDSYS_TRADENAME', 'Mi SL'),
    'titular' => env('REDSYS_TITULAR', 'RAMON'),

Del método getParameters() obtengo:

array:13 [▼
  "DS_MERCHANT_AMOUNT" => 1100
  "DS_MERCHANT_ORDER" => "1548527841"
  "DS_MERCHANT_MERCHANTCODE" => "337001XXX"
  "DS_MERCHANT_CURRENCY" => "978"
  "DS_MERCHANT_TRANSACTIONTYPE" => "0"
  "DS_MERCHANT_TERMINAL" => "1"
  "DS_MERCHANT_PAYMETHODS" => "T"
  "DS_MERCHANT_MERCHANTURL" => "http://example.com/redsys/notification"
  "DS_MERCHANT_URLOK" => "http://example.com/redsys/notification"
  "DS_MERCHANT_URLKO" => "http://example.com/redsys/notification"
  "DS_MERCHANT_MERCHANTNAME" => "Mi SL"
  "DS_MERCHANT_TITULAR" => "RAMON"
  "DS_MERCHANT_PRODUCTDESCRIPTION" => "Transfers"
]

He comprobado que en la variable $key está la clave de cifrado correcto.

Por si sirve de algo mi versión de PHP es:

php -v
PHP 7.2.13 (cli) (built: Dec  5 2018 07:34:22) ( ZTS MSVC15 (Visual C++ 2017) x86 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.7.0beta1, Copyright (c) 2002-2018, by Derick Rethans

Estoy haciendo algo mal?

Hola, parece ser que hay un error pero en el fuc, el banco ahora solicita un fuc real.
Mira aquí tratamos el tema: ssheduardo/sermepa#63

Que rápidez! 💯

Es extraño porque estoy usando el FUC que me proporcionó el cliente, lo revisaré con el a ver si me lo facilitó mal.

Sabes si el FUC de test es distinto que el de PRO para un cliente?

Muchas gracias

Confirmado con los datos de producción funciona, muchas gracias