8 posts / 0 new
Last post
ueolga
Error 401

Buenos días

Llevo unos días y siempre me sale el mismo error 401, tanto si lo hago por PHP, Postman o línea de comandos. Me gustaría saber cual es el problema.

Pongo aquí el ejemplo más basico en linea de comandos sin parametros opcionales, lo mínimo que dice la documentación con la url de desarrollo que me facilitaron por correo. 

curl -X POST -H "Content-Type: application/json" -H "X-IBM-Client-Id: e28bf951-xxxx-42a4-be8f-xxxxxxxx" -H "accept: application/json" https://apimbu.mercantilbanco.com/mercantil-banco/sandbox/v1/payment/get...

{ "httpCode":"401", "httpMessage":"Unauthorized", "moreInformation":"Invalid client id or secret." }

 

Aqui el ejemplo mas completo de vuestra web con los datos completos e idéntico resultado

curl --request POST --url https://apimbu.mercantilbanco.com/mercantil-banco/sandbox/v1/payment/get... --header 'X-IBM-Client-Id: e28bf951-xxxxx-42a4-be8f-xxxxxxxxx' --header 'accept: application/json' --header 'content-type: application/json' --data '{"merchant_identify":{"integratorId":"1","merchantId":"150332","terminalId":"1"},"client_identify":{"ipaddress":"10.0.0.1","browser_agent":"Chrome 18.1.3","mobile":{"manufacturer":"Samsung","model":"S9","os_version":"Oreo 9.1","location":{"lat":37.422476,"lng":122.08425}}},"transaction_authInfo":{"trx_type":"solaut","payment_method":"tdd","card_number":"501878200066287386","customer_id":"V18366876"}}'

 

Sinceramente no se cual es el problema. ¿Algo falla en el código o necesito alguna nueva autorización?

Nota: He ocultado algunos caracteres en el id por seguridad.

Un saludo

 

Camsuperv03
Error 401

Buenos días, estimado cliente 

Anexo link donde puede encontrar en el listado de errores los posibles escenarios de solución con el error 401:

https://www.mercantilbanco.com/mercprod/apiportal/pdfs/Errores_con_TDD.pdf

Le invitamos a realizar las pruebas nuevamente, en caso de presentarse algún error agradecemos enviarnos el request y response completo en archivo plano y sin encriptar a la siguiente dirección de correo electrónico: apisupport@bancomercantil.com

Quedamos atentos. 

ueolga
Two Factor

Hola

El fallo era que el id no era ni el que me generó el programa ni el que está de ejemplo en la web, es uno que ustedes a postiriori por correo, por ahora con ese id si va. Estoy haciendo ahora mas pruebas por otros lados y me surjen preguntas que intento 

El two_factor, en el ejemplo de php en github no lo usa, solo encripta el cvv y lo hace bien. Me gustaria saber como encriptarlo (que probablemente sea igual que el cvv) y sobre todo que valor es ese? ¿Es obligatorio?

En la ayuda dice: twofactor_auth: Clave telefónica del cliente. La clave telefónica el cliente pagador puede gestionarla desde Mercantil en línea Personas

No me queda muy claro, hay paginas de ejemplos de ustedes con pagos.

Otra cosa importante es los datos del comercio, facturas y demás se dan a posteriori cuando salga a producción, que intento ver que me devuelven las pruebas, y suele ser o ya procesada o error. Tiene datos de pruebas lo mas parecidoa la realidad? O algun manual  que seguir

gracias anticipadas

 

 

 

ueolga
(Este mensaje lo planteé por
(Este mensaje lo planteé por correo hace una semana, lo escribo por el foro)
 
Hola, 
 
Estoy mirando el método getauth que me comentas además en la api vuestra y la ayuda. Aunque entiendo muchas cosas hay otras que no termino de entender. En el siguiente correo pregunto cosas más concretas a realizar. 
 
Este correo lo divido en 3 en principio. Método GetAuth, Método Pay, Resto
 
---> Método GetAuth
 
 En la API de pago veo que hay tres campos obligatorios: Objetos Merchant_Identify, Client_Identify y Transaction
 
1 Merchant:
1.1  Me pones un ejemplo con merchanId = 200289. Este número es fijo, es para prueba o cambia después, por lo que leo es el código del comercio dado por ustedes. 
1.2   IntegratorId y terminalid pongo ambos a 1? Por lo que leo en el pdf ambos son asignados por el banco.
 
2 Transaction
2.1 trx_type. Dice que es un tipo de transacción y una constante, en el ejemplo pone "compra", si lo hago así no me va, si pongo "solaut" si hace cosas. Que es este valor string, ¿es importante? (más abajo pongo el este error)
2.2 payment_method: veo que dice TDD o TDC tarjeta de crédito o debido. El usuario debe saber de antemano esta información? ¿Se la tenemos que pedir?
 
 
Se ha llegado a obtener estos resultados con el ejemplo que nos has proporcionado
 
Entrada: -->{"merchant_identify":{"integratorId":"1","merchantId":"200289","terminalId":"1"},"client_identify":{"ipaddress":"10.0.0.1","browser_agent":"Chrome 18.1.3","mobile":{"manufacturer":"Samsung","model":"S9","os_version":"Oreo 9.1","location":{"lat":37.422476,"lng":122.08425}}},"transaction_authInfo":{"trx_type":"solaut","payment_method":"tdd","card_number":"501878200066287386","customer_id":"V18366876"}}<--

salida: -->{"merchant_identify":{"integratorId":1,"merchantId":200289,"terminalId":"1"},"authentication_info":{"procesing_date":"2022-04-16 08:13:16 VET","trx_status":"approved","trx_type":"solaut","payment_method":"tdd","twofactor_type":"4uTlqT1Xg4gUO+pPZc12Sw==","twofactor_label":"Wqi2Wo+VV+eTPwvdpgAL4hpqmtl46Eo8WCSKxX9vifl+NeXG9/XR8H8aoThEl/HMM5xS8glgZbdtmxrKM9fqEsTunUN707YYFDxEm4+b6ugPLVBQ6lJUa6wXhGIy0tHm","twofactor_field_type":"rfm35En5vDzhLr43PxXVSg==","twofactor_lenght":"uYYNslB5tJKmf4qp8UXZtg=="}}<--

Response descifrado: -->App\ModelsInfo\PagoMercantilAuthenticationInfo Object ( [procesing_date] => 2022-04-16 08:13:16 VET [trx_status] => approved [trx_type] => solaut [payment_method] => tdd [twofactor_type] => 4uTlqT1Xg4gUO+pPZc12Sw== [twofactor_type_plano] => otp [twofactor_label] => Wqi2Wo+VV+eTPwvdpgAL4hpqmtl46Eo8WCSKxX9vifl+NeXG9/XR8H8aoThEl/HMM5xS8glgZbdtmxrKM9fqEsTunUN707YYFDxEm4+b6ugPLVBQ6lJUa6wXhGIy0tHm [twofactor_label_plano] => Por favor introduzca la clave temporal enviada a su teléfono y/o correo electrónico [twofactor_field_type] => rfm35En5vDzhLr43PxXVSg== [twofactor_field_type_plano] => numeric [twofactor_lenght] => uYYNslB5tJKmf4qp8UXZtg== [twofactor_lenght_plano] => 8 )

 
 
Ahora ya veo lo de twofactor_auth que en el ejemplo de la web de la api está codificada y dice 1234, en el ejemplo que me pasastes no estoy seguro que colocar la verdad. 
 
Leyendo en el pdf dice de twofactor_auth :Clave telefónica del cliente. La clave telefónica el cliente pagador puede gestionarla desde Mercantil en línea Personas. Por tanto el que pone la tarjeta tiene que ser una tarjeta del banco mercantil (con cuenta) y gestionarlo a través de la web. ¿Es correcto? ¿No puede ser cualquier tarjeta de crédito de otra entidad o incluso país?
 
  El punto este: "Configurar el campo twofactor_auth para la aceptación del valor OTP o clave dinámica", no sabria donde configurarlo de todas formas o que valor poner, imagino que será en pay.   
 
Errores varios relacionados con el GetAuth:  
 
1. Con el getAuth, solo dio una vez
Entrada: -->{"merchant_identify":{"integratorId":"1","merchantId":"200289","terminalId":"1"},"client_identify":{"ipaddress":"10.0.0.1","browser_agent":"Chrome 18.1.3","mobile":{"manufacturer":"Samsung","model":"S9","os_version":"Oreo 9.1","location":{"lat":37.422476,"lng":122.08425}}},"transaction_authInfo":{"trx_type":"solaut","payment_method":"tdd","card_number":"501878200066287386","customer_id":"V18366876"}}<--

salida: -->{"processing_date":"2022-04-16 07:25:46 VET","status":{"error_code":"9003","description":"Error procesando el servicio MerchantService"}}<--

 
 
2. GetAuth: Fue cambiar la palabra solaut de trx_type por compra (como en el ejemplo) y dar ese error
Entrada: -->{"merchant_identify":{"integratorId":"1","merchantId":"200289","terminalId":"1"},"client_identify":{"ipaddress":"10.0.0.1","browser_agent":"Chrome 18.1.3","mobile":{"manufacturer":"Samsung","model":"S9","os_version":"Oreo 9.1","location":{"lat":37.422476,"lng":122.08425}}},"transaction_authInfo":{"trx_type":"compra","payment_method":"tdd","card_number":"501878200066287386","customer_id":"V18366876"}}<--

salida: -->{"processing_date":"2022-04-16 07:37:24 VET","merchant_identify":{"integratorId":1,"merchantId":200289,"terminalId":"1"},"error_list":[{"error_code":"0180","description":"Codigo de transaccion o metodo de pago no existen"}]}<--

 
 
 
Voy a plantear mi punto de vista de como creo que es el pago a ver en que me estoy equivocando.
 
Voy a poner un ejemplo sencillo y avanzamos de ahi. Es que en la web solo veo las definiciones de las api y lo ejemplos que ponen en cada lenguaje:
 
Una cosa sencilla
 
Estoy en el comercio y tengo esta pantalla, que creo que es lo mínimo que tengo que hacer. Buscando en webs y experiencia personal es lo mínimo que se debe pedir, pero ustedes me tienen que orientar mas.
 
 
El Nombre completo sería el nombre que aparece en la tarjeta. El número de la tarjeta y el CVV. 
 
1. Yo entiendo que aquí la tarjeta bancaria en este caso es de cualquier banco de cualquier parte del mundo, ¿es correcto?
2. El cvv se encripta con la clave que nos ofrecieron, por ahora sin problema en esta parte. 
3. Otra cosa que tengo curiosidad, si quiero cambiar el tipo de moneda a dólares u otra moneda es posible o solo en bolívares?
4  Aqui no tengo ni cédula ni tipo de tarjeta ni nada, es posible hacerlo con esos mínimos de datos? Sin preguntar TDD, TDC, CC, CA, ..... 
 
Yo aqui tengo que mandar la descripción o referencia con un identificador para devolver el resultado por contrastarlo, pensé que era el merchantid, pero por lo que entiendo es único. Podría ser el trx_type pero como dije antes en getauth si pongo compra da error y si pongo solaut da resultados, no lo entiendo. Probablemente en el invoice_number sea donde esté el dato a colocar, este está en el metodo pay que todavia no he conseguido respuesta satisfactoria
 
Si es así entiendo que manden ustedes a la persona por correo o movil una clave y ponerla en la web, pero nuestra idea, o eso tenía entendido que era con un pago con tarjeta, da igual la tarjeta y banco. Si estamos equivocados me lo pueden hacer saber.
 
 
 
--> Método Pay
 
Las prueba que ahora realizo con el método Pay
 
 
1. Error principal de devolución (siguiente ejemplo), veo que me da error de twofactor y que se puede bloquear. ¿Esto bloquea en algún punto? ¿cuanto tiempo  y como? ¿Imagino que bloquea la página web entera que nadie más puede usarla no?
Realmente tampoco se que falla, es el ejemplo de la web de la api
 
 
Entrada: -->{"merchant_identify":{"integratorId":"1","merchantId":"200289","terminalId":"1"},"client_identify":{"ipaddress":"10.0.0.1","browser_agent":"Chrome 18.1.3","mobile":{"manufacturer":"Samsung","model":"S9","os_version":"Oreo 9.1","location":{"lat":37.422476,"lng":122.08425}}},"transaction":{"trx_type":"compra","payment_method":"tdd","card_number":"501878200066287386","customer_id":"V18366876","invoice_number":"3564544","account_type":"CA","twofactor_auth":"fNnhSjdJeyG1EKzC46BzyA==","expiration_date":"2020/11","cvv":"0UgRjIBebAAQJFAdvjNbLw==","currency":"VES","amount":2525.33}}<--
Response: --> {"processing_date":"2022-04-17 05:01:05 VET","merchant_identify":{"integratorId":1,"merchantId":200289,"terminalId":"1"},"error_list":[{"error_code":"9014","description":"Autenticacion errada puede bloquear usuario se puede bloquear por max. numero de intentos fallidos (twofactor_auth) "}]}
 
 
Aquí realmente estoy un poco perdido con los datos de pruebas a enviar. Sobre todo como comenté antes el twofactor_auth
 
 
 
-->Resto
 
Otra cosa, veo que me dan tres endpoint, getauth, pay y search. Del de search no encontré nada en la documentación de la api en la web, seguramente lo estoy buscando mal. ¿Qué hace? ¿Dónde está?
 
 
Estab viendo la web de caraotamarket, que utilizan vuestra plataforma y veo las opciones que son
 
 
Mi pregunta es si hay que diferenciar entre tarjetas emitidas en venezuela o no. ¿Es importante? Esta captura es parecida a la que hacemos nosotros salvo pedir la cedula o pasaporte. En la web esta tienen diferenciado los tipos de pagos, ¿hay que hacerlo asi? preguntarle al cliente que tipo de tarjeta tiene, si es de un banco venezolano, si es del mercantil y demás? 
 
En esa web anterior veo que tambien cambia de dolares a bolivares. 
 
Imagino que con este método que usa la web anterior no tenemos que usar el twofactor_auth o si? es mi pregunta. Es que busco y no veo un pdf o método claro de como hacer las cosas. De hecho lo que me mandaron por correo del getauth podrían escribirlo para consulta en un pdf o en la documentación. A lo mejor está y no se buscarlo. 
 
 
Las tarjetas de crédito de ejemplo que tienen, una se vence en el 2020 y otra (en la imagen de ayuda) se vence en 2024. La verdad no se si tienen datos también de ejemplos con el método Pay. 
Me gustaría saber si tienen ejemplos de tarjetas que funcionen asi en desarrollo. 
 
 
 
 
 
Un saludo y gracias anticipadas. 
 
P.D: Si no entienden cualquier cosa o me he explicado mal no duden en consultaros.
globalmindt
Poseo las mismas dudas,

Poseo las mismas dudas, lograste implementar el pago ? 

ueolga
Hola

Hola

La verdad todavía no he terminado de implementar el pago y sigo esperando respuestas (por correo, por foro o por meet). Tengo varias preguntas más.

Un saludo

 

globalmindt
Saludos

Ando en la misma, no se que datos se toman para cifrar y que devuelva el two_auth, tampoco se cual es el invoice. La verdad la documentación no explica mucho eso, hice una encriptacion con nodejs, pero no me funciona del todo bien al parecer....

ueolga
Perdona, no te había

Perdona, no te había respondido. Si, al final tuvimos una reunión y nos aclararon muchos puntos, pero seguimos con problemas de conexión.

Un día va bien y responde, y el otro da error de:

"processing_date": "2022-05-17 04:11:11 VET",

    "status": {

        "error_code": "9003",

        "description": "Error procesando el servicio MerchantService"

    }

 

Y la explicación en el pdf es: "Reportar en el foro". 

Un saludo

Log in or register to post comments