payway-ar / sdk-javascript-ventaonline

SDK de FrontEnd para Gateway de pago Payway
13 stars 3 forks source link

No es posible desactivar Cybersource #12

Open grago opened 1 year ago

grago commented 1 year ago

Hola, estoy intentando ejecutar un pago deshabilitando Cybersource, mediante el constructor:

const decidir = new Decidir(url, false);

Sin embargo, al ejecutar el pago con el token generado, se retorna un error de Cybersource:

{ "data_response": { "id": 13039757, "site_transaction_id": "XXX", "payment_method_id": 1, "card_brand": "Visa", "amount": 10000, "currency": "ars", "status": "rejected", "status_details": { "card_authorization_code": "", "error": { "type": "cybersource_error", "reason": { "id": -1, "description": "" } } }, "date": "2023-01-03T21:22Z", "customer": { "id": "customer", "email": "test@gmail.com" }, "installments": 1, "payment_type": "single", "sub_payments": [], "fraud_detection": { "status": { "decision": "black", "reason_code": -1, "description": "validation", "details": { "error_type": "invalid_request_error", "validation_errors": [ { "code": "missing", "param": "bill_to" } ] } } }, } }

(en el error copiado se suprimió información de la cuenta y otros datos no relevantes)

Es importante aclarar que la ejecución del pago se está realizando mediante el SDK de PHP de Decidir.

También aclarar que se está utilizando el ambiente de testing de la cuenta.

¿Cuál podría ser el problema?

Muchas gracias.

nunco commented 1 year ago

buenos días @grago , para deshabilitar CS, hay que poner en false el campo fraud_detection.send_to_cs= false; En caso de que no te funcione, compartime el site_transaction_id para ver el motivo de rechazo. espero haberte ayudado, slds!

grago commented 1 year ago

Hola @nunco muchas gracias por la respuesta. Al enviar el el campo send_to_cs=false utilizando el SDK PHP, se obtienen diversos resultados:

       "fraud_detection": {
            "status": {
                "decision": "black",
                "reason_code": -1,
                "description": "validation",
                "details": {
                    "error_type": "invalid_request_error",
                    "validation_errors": [
                        {
                            "code": "missing",
                            "param": "fraud_detection"
                        }
                    ]
                }
            }

En este último caso, el site_transaction_id es BCD 7350/RECHARGEPACK_210/20230106081344

Muchas gracias.

nunco commented 1 year ago

@grago te comento, el objeto fraud detection es mandatorio, al igual que los campos. te comparto un documento para que veas la estructura de cs vertical por vertical. https://decidirv2.api-docs.io/1.0/prevencion-de-fraude-by-cybersource/device-fingerprint

en caso de que no necesiten las validaciones de CS, se puede deshabilitar en su site, o bien enviar el objeto pelado. vale aclarar que en la generación de token de pago tambien se quitarian los datos de cs /token --> eliminar objeto "fraud_detection": { "device_unique_identifier": "12345" }, /payment --> poner asi "fraud_detection": { "send_to_cs": false }

cualquier consulta, estamos a disposición.

pd: el site_transaction_id que compartiste no lo encontre. slds

eugetiendup commented 1 year ago

Hola! Como se debe mandar el device_unique_identifier con el sdk de javascript?