Spanish [Solucionado]problemas al integrar api para pagos

Carlos marin

Active Member
Licensed User
Longtime User
Ya as leído la limitación que tiene epayco ?, esto es útil para comercio con NIT aun no tengo un Nit -_-

creo que al final del día voy a terminar casado con Payu, Estoy lanzando la pasarela con Chrome y funciona de lo lindo, la mayor parte del código esta en php.
En b4a solo recojo las variables que envió por post y con un intent ya esta.

Mmm yo estoy registrado y no tengo nit, ps hasta donde hable con ellos no es necesario salvo que seas una empresa grande... cualquier cosa me comentas por aca estoy dispuesto. Saludos :cool::cool::cool:
 

soyVB6

Active Member
Licensed User
Hola carlos, saludos
mi app dejo de funcionar con el método que tenia(ePayco) y trate de implementar la api que me comentaste de payu y esto es lo que intento

B4X:
Dim post As HttpJob
    post.Initialize("",Me)
    ''post.PostString("https://api.payulatam.com/payments-api/4.0/service.cgi",variables)
    post.Download2("https://api.payulatam.com/payments-api/4.0/service.cgi",Array As String("test",False, _
    "language","en", _
    "command","GET_PAYMENT_METHODS", _
    "apiKey","*****", _
    "apiLogin","****"))
    post.GetRequest.SetHeader("POST","/payments-api/4.0/service.cgi HTTP/1.1")
    post.GetRequest.SetHeader("Host:","sandbox.api.payulatam.com")
    post.GetRequest.SetHeader("Content-Type:","application/json; charset=utf-8")
    post.GetRequest.SetHeader("Accept:","application/json")
    post.GetRequest.SetHeader("Content-Length:","length")

pero siempre obtengo un error, me das una mano porfa de como enviar la solicitud y las variables :/
 

Carlos marin

Active Member
Licensed User
Longtime User
Hola carlos, saludos
mi app dejo de funcionar con el método que tenia(ePayco) y trate de implementar la api que me comentaste de payu y esto es lo que intento

B4X:
Dim post As HttpJob
    post.Initialize("",Me)
    ''post.PostString("https://api.payulatam.com/payments-api/4.0/service.cgi",variables)
    post.Download2("https://api.payulatam.com/payments-api/4.0/service.cgi",Array As String("test",False, _
    "language","en", _
    "command","GET_PAYMENT_METHODS", _
    "apiKey","*****", _
    "apiLogin","****"))
    post.GetRequest.SetHeader("POST","/payments-api/4.0/service.cgi HTTP/1.1")
    post.GetRequest.SetHeader("Host:","sandbox.api.payulatam.com")
    post.GetRequest.SetHeader("Content-Type:","application/json; charset=utf-8")
    post.GetRequest.SetHeader("Accept:","application/json")
    post.GetRequest.SetHeader("Content-Length:","length")

pero siempre obtengo un error, me das una mano porfa de como enviar la solicitud y las variables :/

hola estimado... en lo que te pueda ayudar claro que si. que error obtienes
 

soyVB6

Active Member
Licensed User
Amigo logre hacer ping y la respuesta es aceptable

B4X:
    Dim post As HttpJob
''JSONstring contiene los parámetros requeridos
    post.Initialize("ApiPayu",Me)
    post.PostString("https://api.payulatam.com/payments-api/4.0/service.cgi",JSONstring)
    post.GetRequest.SetContentType("application/json")

pero cuando intento realizar una TRANSACTION me da un error
<paymentResponse><code>ERROR</code><error>No cuenta con los permisos requeridos para efectuar la operación solicitada, para mayor información comuniquese con el servicio de atención al cliente.</error></paymentResponse>
 

Carlos marin

Active Member
Licensed User
Longtime User
Amigo logre hacer ping y la respuesta es aceptable

B4X:
    Dim post As HttpJob
''JSONstring contiene los parámetros requeridos
    post.Initialize("ApiPayu",Me)
    post.PostString("https://api.payulatam.com/payments-api/4.0/service.cgi",JSONstring)
    post.GetRequest.SetContentType("application/json")

pero cuando intento realizar una TRANSACTION me da un error

mmm parece mas bien una negación del servidor de payu a un error de programación. si deberías consultar en soporte de Payu sobre este mensaje, tengo entendido que a diferencia de epayco que ellos mismo realizan la transacción Payu pide un servidor con https desde donde uno envía los datos a tener en cuenta:

  1. Debes tener una cuenta activa en PayU.
  2. Debes instalar el certificado SSL válido en tu servidor y tu sitio debe estar en capacidad de realizar conexiones SSL por lo cual la máquina virtual debe contar con las extensiones de seguridad apropiadas.
  3. Temporalmente NO utilices certificados de seguridad de curva elíptica o aquellos que cuenten con la suite de cifrado TLS_ECDHE_ECDSA_WITH_RC4_128_SHA en tus peticiones de pago.
  4. Debes contar con lenguajes de servidor o CGI tales como Java, C#, VB, PHP, etc.
  5. Debes estar en capacidad de almacenar de forma segura tus credenciales de autenticación (API Key y API Login).
  6. La codificación para los mensajes debe ser UTF-8.
  7. Las fechas con hora deben seguir el formato yyyy-MM-ddTHH:mm:ss, el formato de la hora es 24 horas. Ej. 2015-08-22T21:35:12.
  8. En condiciones normales la conexión garantiza tiempos de respuesta de 3 segundos en promedio, si hay una situación anormal, el tiempo máximo de respuesta será de 1 minuto. Es altamente recomendable que configures los “timeouts” cuando te conectes con PayU.
  9. Es importante validar la longitud y los números de tarjetas de crédito por franquicia junto con los códigos de seguridad.
 

soyVB6

Active Member
Licensed User
Lo que sucede según es esto...

HTML:
te informamos que este error se presenta pues el servicio API no se encuentra activo para tu cuenta. Para solucionarlo, debes enviar un mensaje a s...@payulatam.com desde el correo electrónico titular asociado a la cuenta, especificando que deseas habilitar el procesamiento API.

Así que ya envié el correo y solo queda esperar que respondan.
 

soyVB6

Active Member
Licensed User
Funciono al fin, las cuentas no se les permite consumir de la api hasta que se les pide que lo activen.
Ya me lo activaron y ahora funciona genial.

Voy a preparar una clase completa sobre esto, payu es interesante hasta netflix lo usa en colombia :eek:
 
Top