Open pabloldeoliveira opened 2 years ago
Buen día!
A mi me paso lo mismo y por el momento decidí no usar la librería y en su lugar hacer una llamada POST a '{{$url}}/web/forms' que no tiene requeridos esos dos campos de los que no pude encontrar el valor en ningún lado.
buenos días, para web forms recomiendo, https://decidirv2.api-docs.io/1.0/introduccion/propiedades-del-header-http "form_apikey"=apiKey en header, "form_site"= apiKey publica en body. adicional hay que utilizar el template_id, perteneciente el idSite. slds!
curl --location --request POST 'https://developers.decidir.com/web/forms' \ --header 'Content-Type: application/json' \ --header 'apikey: 9e3b3e87d7d64b88815c59e4f12fe146' \ --header 'Cookie: TS01565543=017e158d19fb27c734212350dde086d1c3becffb994f7fb7673b97bce029de34c1e87eb7cd98de9ed21011c6cbc09ec19d09458e91' \ --data-raw '{ "site": { "transaction_id": "1661433717", "template": { "id": 10 } }, "public_apikey": "78460533452d491fb71ea9883e37665e", "customer": { "id": "integraciones Decidir", "email": "integraciones@decidir.com", "ip_address": "192.168.1.1", "identification": { "type": "dni", "number": "35222444" }, "door_number": 505, "date_of_birth": "1990-07-24" }, "payment": { "amount": 2000, "currency": "ARS", "payment_method_id": 1, "installments": 1, "payment_type": "single", "sub_payments": [] }, "_redirect_url": "https://successurl.free.beeceptor.com", "success_url": "https://successurl.free.beeceptor.com", "cancel_url": "https://successurl.free.beeceptor.com" }'
proba con eso y avísame.
Gracias juanmanuelzvl y nunco por las respuestas, efectivamente haciendo un request a https://developers.decidir.com/web/forms con todos los datos que solicita la api pude generar un hash. Solo que después este hash iría al final de la url (que especifica la documentación) que es https://api.decidir.com/web/forms tengo entendido. Esa url sería live. La url para sandbox sería por ejemplo: https://developers.decidir.com/web/form?hash=0162fa47-5e05-451a-bc19-536478569e6f es correcto?
Por la respuesta de la api es: {"error_type":"api_error","message":"Unknown error","code":"internal_server_error"}
Gracias nuevamente!
Buenas, que bueno que pudiste generar el hash! Ahora, para levantar el formulario en el browser, lo tenes que armar con este formato: {{url}}/web/forms/{{hash}}?apikey={{apiKeyPublica}} Te dejo un ejemplo fresco. https://developers.decidir.com/web/forms/762ce42e-e70a-4c47-a69f-38727c2351da?apikey=78460533452d491fb71ea9883e37665e Exitos!
Excelente nunco, acabo de probar con mi implementación también y ahora puedo POR FIN ver el form de pago. Todo esto debería estar en la documentación. Muchas gracias!
Buenas tardes,
Estoy teniendo dificultades con la implementación del formulario de pago.
Utilizando el cURL de @nunco pude generar el hash y armar la url para el formulario de pago, lo puedo ver pero con el apikey del ejemplo, con los que me brindaron de prueba y producción no pude hacer que funcione.
Estas son las credenciales del ambiente de prueba:
API Key Pública: aqjLFn9f4FbxrHZTdIzPVP5G8sM0m90h API Key Privada: B72QxoLT7CPc3QGpbdd4wdMGUmWcP7h7
Cual va como parámetro en la url del request y cual va como public_apikey dentro del raw? Probé con ambos, inviertiéndolos, con los de producción, y obtengo solo errores.
No me toma otra apikey en la url que no sea la del ejemplo '9e3b3e87d7d64b88815c59e4f12fe146'. Y por otro lado veo que si toma cualquier public_apikey que respete el formato dentro del raw.
Cuando pongo en la url la API Key Privada y en el raw la Pública obtengo este error:
{ "error_type": "invalid_request_error", "validation_errors": [ { "code": "Expected fraud detection for this site.", "param": "fraud_detection" } ] }
Cuando invierto el órden obtengo esto:
{ "message": "FORMS - No API key found in headers or querystring" }
Agradecería mucho que alguien me pueda dar una mano con esto. Saludos.
@rodricavs aca hay varias cuestiones. El curl que comparti, es para un usuario sin Cybersource (CS), y funciona para ambientes bajos. Si queres utilizar con CS, tenes que utilizar unas credenciales con CS y siempre el idTemplate. Idem para prod. si no tenes el template ni credenciales, no va a funcionar. Espero haberte ayudado.
Hola @nunco, gracias por responder.
No estoy utilizando CS y también estoy en un ambiente de prueba (por las dudas probé con las credenciales de producción que tal vez funcionaban, fue un intento desesperado de agotar posibilidades).
El idTemplate lo generás desde el portal de developers de PayWay? Estoy esperando una respuesta al respecto para que me den acceso, pero imagino que también ahí se genera el formulario y se obtiene el form_id.
Supongo que las credenciales para el ambiente de prueba que me enviaron por mail no sirven de nada si no configuro primero un formulario, es así?
Muchas gracias por la ayuda, Saludos.
Hola @rodricavs , el error que te da, es porque utilizaste unas credenciales que tienen CS configurado, al no enviarlo, te retorna ese error por fraud_detection. El idTemplate lo podes pedir al chatbot, si no lo conseguis levanta un tkt, sino dejame tu mail y te escribo para pasartelo por privado. Abrazo.
Hola @nunco. Entiendo entonces que las credenciales que te envían vienen configuradas por defecto con CS, y es algo que debería sacarle de alguna forma o que me den otras credenciales. Estuve viendo como conseguir eso y también el idTemplate a través del chatbot pero no llego a nada, no entienden lo que les pido... Mi mail es cortexdesign23@gmail.com Muchas gracias, Saludos.
Buen días @rodricavs, ahora te escribo por mail y te comparto el id_template. por las dudas, mi mail es nunco@prismamp.com. saludos.
@nunco Yo acabo de implementar webforms leyendo todo lo que pusieron acá ya que la doc no es clara. La cuestion es que al poner el redirect_url, luego de procesado el pago, no tengo idea qué me estaría devolviendo. Veo que me devuelve un token a través del parámetro result. Pero con ese token debo recuperar el pago? Si es así, a cual endpoint? La verdad es que estoy muy confundido con la poca información y me gustaría una pista para poder avanzar,
buenos días @yosoyadro , como estas? El comportamiento de ese campo es el siguiente: "Si el comercio envía el campo “redirect_url” en el recurso /forms, Decidir hará un redirect (HttpStatus Code 302) a dicha url, pasando un query param “result”, cuyo valor es un json con los datos de la transacción, codificado en Base64. De esta manera, el comercio puede recibir esos valores y redireccionar al usuario a distintas páginas según el resultado." Con esto lo sacas andando. Salu2
@nunco Funcionó de 10! Pero tengo un problema: De dónde puedo sacar el payload de error para tener la info que pueda guardar en el back? Todo la implementación la hice a través de los comentarios de acá ya que nunca responden desde soporte. Así que te pido una mano con eso para poder fnalizar. Gracias!
@yosoyadro buenos días, hay que dividir el tema de "errores", si bien el front muestra pantallas con error, hay que tener en cuenta que puede ser dentro de Decidir y Fuera, ej: En decidir: pagar una transacción de 2 cuotas con tarjeta de débito. Fuera : El usuario ingreso mal el cvv y responderia la marca con un error. Te recomiendo ver el apiDoc, hay ejemplo de errores para que puedas trackear mejor. Espero haberte ayudado. Saludos.
Buenas tardes, estoy haciendo la integracion, me dieron API Keys privada y publica de test, pero a la hora de obtener el hash recibo el siguiente mensaje: "You cannot consume this service" object(Decidir\Validate\ValidateResponse)#35 (3) { ["dataResponse":protected]=> array(1) { ["message"]=> string(31) "You cannot consume this service" } ["field_required":"Decidir\Data\AbstractData":private]=> NULL ["field_optional":"Decidir\Data\AbstractData":private]=> NULL }
API KEY publica: Pgx6GLovc15qB4vlKthVFXxGQRhBgUHS API KEY privada: EBRIXvoi3rUMOk1UL1vJmI6V5Dkm4oA3 ID site: 92002325
alguna solucion? Muchas gracias
Buenas tardes @pablovranken , te respondí por mail, te deje un ejemplo y te deje un link de ejemplo, hice algunos pagos de ejemplo a tu site. saludos.
buenos días, estoy tratando de usar el método validate() para obtener el formulario, el ejemplo anterior con las API keys de prueba funciona ok, Cuando pongo mis API Keys & Site ID, me exige me da un mensaje "You cannot consume this service", pregunta, la obtención del formulario es compatible con fraud detect?, Saludos
@jea6260 Seguí el ejemplo de @nunco que funciona bien, pero no te olvides de pedir el ID de formulario por ticket o inspeccionando con la consola la opción para generar un link de pago en la plataforma de ventas online (no la general de Payway). Eso sí: en lo de fraude le mandé array vacío.
@pablovranken , tengo exactamente el mismo problema, podrás copiarme el mail de respuesta de @nunco ?, gracias (jangaut@gmail.com)
buenos días. @jea6260 , ahi te respondi por mail.
Dejo esto para futuras consultas: 1-Por defecto, al generarse los sites por payway, tienen el beneficio de Cybersource, ustedes pueden utilizar este antifraude o no. En caso de querer apagar CS pueden solicitar apagarlo. En caso de querer prender/apagar bajo su responsabilidad, pueden habilitar/deshabilitar por request "fraud_detection": { "send_to_cs": false}; o bien completar con los campos mandatorios como indica la documentación Documentación CS https://decidirv2.api-docs.io/1.0/prevencion-de-fraude-by-cybersource/flujo-de-una-transaccion-con-cybersource
2-template_id, en caso de que no llegue por mail, lo pueden solicitar.
Dejo el request de generación de hash, cabe destacar que el objeto de CS esta en false. Con esto te deberia generar el hash para armar la url. { "site": { "transaction_id": "{{$timestamp}}", "template": { "id": {{templateId}} } }, "public_apikey": "{{publicSfCcs}}", "customer": { "id": "integraciones Decidir", "email": integraciones@decidir.com, "ip_address": "181.46.152.230" }, "payment": { "amount": {{amount}}, "currency": "ARS", "payment_method_id": 1, "installments": 2, "payment_type": "single", "sub_payments": [] }, "fraud_detection": { "send_to_cs": false }, "_redirect_url": https://successurl.free.beeceptor.com/, "success_url": https://successurl.free.beeceptor.com/, "cancel_url": https://successurl.free.beeceptor.com/ }
Recordar que la url de pago se arma con el siguiente formato: {{url}}/web/forms/{{hash}}?apikey={{apiKeyPublica}}
saludos!
sigo con "you cannot consume this service"... deberé resignarme?
Hola, buen día a todos,
Alguien sabe de dónde se obtienen los datos "form_apikey" y "form_site" que figuran en el ejemplo siguiente: https://github.com/payway-ar/sdk-php-ventaonline#getvalidateform
Porque los del ejemplo no funcionan y en la documentación no se mencionan nunca excepto en este ejemplo.
Mi idea es poder generar el hash para generar un link al formulario de pago, pero sin tener una referencia clara de dónde se toman los campos form_apikey y form_site me es imposible.
Saludos.