ssheduardo / sermepa

Clase para utilizar la pasarela de pagos redsys, sermepa.
MIT License
191 stars 59 forks source link

Question: ¿Cómo hacer pagos directos? #58

Closed jolugarbe closed 6 years ago

jolugarbe commented 6 years ago

Buenas!

He seguido todos los pasos indicados para realizar pagos directos con referencia y tengo el siguiente código:

       `Redsys::setAmount($amount);

        Redsys::setOrder($order);

        Redsys::setMerchantcode(config('redsys.merchantcode'));

        Redsys::setCurrency('978');

        Redsys::setTransactiontype('0');

        Redsys::setTerminal(config('redsys.terminal'));

        Redsys::setMethod('T');

        Redsys::setNotification(config('redsys.url_notification'));

        Redsys::setUrlOk(config('redsys.url_ok'));

        Redsys::setUrlKo(config('redsys.url_ko'));

        Redsys::setVersion('HMAC_SHA256_V1');

        Redsys::setTradeName(config('redsys.tradename'));

        Redsys::setTitular(config('redsys.titular'));

        Redsys::setProductDescription($description);

        Redsys::setIdentifier($card_reference);

        Redsys::setEnviroment(config('redsys.enviroment'));

        $signature = Redsys::generateMerchantSignature(config('redsys.key'));

        Redsys::setMerchantSignature($signature);

        Redsys::setMerchantDirectPayment(true);`

Este código tal cual ejecuta el pago? No me genera ningún error, no me llega nada a la url de notificación ni a la de OK ni KO, he puesto varios logs para ver si entra en algún sitio pero nada...

Los pagos normales introduciendo la tarjeta en el formulario de Redsys funcionan correctamente con la redirección y recojo los datos correctamente en la url OK pero en este código, ¿qué me falta para generar el pago y comprobar sus datos?

Muchas gracias!

ssheduardo commented 6 years ago

Acabo de hacer una prueba y ha funcionado. Hasta a devuelto el número de tarjeta:

Array
(
    [Ds_Date] => 23/05/2018
    [Ds_Hour] => 15:45
    [Ds_SecurePayment] => 1
    [Ds_Card_Number] => 454881******0004
    [Ds_Card_Country] => 724
    [Ds_Amount] => 1536
    [Ds_Currency] => 978
    [Ds_Order] => 180523154525
    [Ds_MerchantCode] => 999008881
    [Ds_Terminal] => 001
    [Ds_Response] => 0000
    [Ds_MerchantData] => 
    [Ds_TransactionType] => 0
    [Ds_ConsumerLanguage] => 1
    [Ds_AuthorisationCode] => 318295
    [Ds_Card_Brand] => 1
)
jolugarbe commented 6 years ago

Seguiré intentándolo porque a mi ni me genera redirección, ni me llega a la url de notificación. Sin embargo un pago normal acabo de probar y me llega a la url de notificación perfectamente.

Por cierto, estoy utilizando tu plugin para Laravel en lugar de esta clase (que va incluida en dicho plugin). En teoría el funcionamiento debe ser el mismo o hay alguna particularidad que no esté aplicando correctamente y por ello no me funcione ni me devuelva la tarjeta??

Muchas gracias por tu ayuda!!

ssheduardo commented 6 years ago

He realizado la prueba con la clase base, sin usar el de laravel.

jolugarbe commented 6 years ago

Todo correcto Eduardo. Era yo que estaba colocando el método en el lugar equivocado aunque no me devuelve el número de la tarjeta, será cosa de cada banco quizás. Muchas gracias por tu ayuda !!