¿Alguien a podido integrar la API en su sitio Web? Utilizo PHP

fgrudolphfgrudolph Miembros Publicaciones: 3
Estoy tratando de integrar la API en mi sitio Web, la gente de Ualá ya me ha pasado las respectivas credenciales de prueba y producción, pero hago la petición para generar la orden de pago, me devuelve datos vacíos en lugar del link al checkout que necesito para redireccionar al cliente. ¿Alguien ya lo tiene implementado? Estoy utilizando las funciones curl de PHP. Les agradezco cualquier sugerencia. Los muchachos de Uala aún no han podido brindarme una respuesta. 
Etiquetado:

Respuestas

  • fr181244fr181244 Superusuario Nivel 1Superusuario Publicaciones: 451
    Hola! Si necesitas ayuda tecnica para integrar la API podes solicitarlo al mismo mail donde te enviaron las credenciales. De todas formas si queres, compartime tu sitio web por priv y lo revisamos. Saludos!
    Fernan
  • fgrudolphfgrudolph Miembros Publicaciones: 3
    fr181244 dijo:
    Hola! Si necesitas ayuda tecnica para integrar la API podes solicitarlo al mismo mail donde te enviaron las credenciales. De todas formas si queres, compartime tu sitio web por priv y lo revisamos. Saludos!
    Gracias, estimado, ya lo pude solucionar. Estaba pasando mal los datos. 
  • GaboPacchioniGaboPacchioni Miembros Publicaciones: 2
    fgrudolph dijo:
    Estoy tratando de integrar la API en mi sitio Web, la gente de Ualá ya me ha pasado las respectivas credenciales de prueba y producción, pero hago la petición para generar la orden de pago, me devuelve datos vacíos en lugar del link al checkout que necesito para redireccionar al cliente. ¿Alguien ya lo tiene implementado? Estoy utilizando las funciones curl de PHP. Les agradezco cualquier sugerencia. Los muchachos de Uala aún no han podido brindarme una respuesta. 
    Hola buen día!
    Sabes que estoy integrando al API y me da el mismo error, me devuelve los datos vacíos...
    Como hiciste para solucionarlo.
    Gracias!
  • fgrudolphfgrudolph Miembros Publicaciones: 3
    fgrudolph dijo:
    Estoy tratando de integrar la API en mi sitio Web, la gente de Ualá ya me ha pasado las respectivas credenciales de prueba y producción, pero hago la petición para generar la orden de pago, me devuelve datos vacíos en lugar del link al checkout que necesito para redireccionar al cliente. ¿Alguien ya lo tiene implementado? Estoy utilizando las funciones curl de PHP. Les agradezco cualquier sugerencia. Los muchachos de Uala aún no han podido brindarme una respuesta. 
    Hola buen día!
    Sabes que estoy integrando al API y me da el mismo error, me devuelve los datos vacíos...
    Como hiciste para solucionarlo.
    Gracias!
    Mi problema fue que estaba utilizando las llamadas a la api de prueba en lugar de las de producción. Lo solucioné y quedó funcionando. 

    Te comparto el código fuente en php que estoy utilizando.
    <body>
    <?php
    
    /*
    
      FRAMEWORK PARA UALA BIS PAGOS
      GENERACIÓN DE TOKENS DE ACCESO Y ÓRDENES DE PAGO
      Copyright (C) by Federico G. Rudolph 2021 - Todos los derechos reservados
    
      Lista de procesos:
      -----------------
    
      1) getAccessToken -> llama a curlRequest -> devuelve el token.
      Si es válido, se genera la orden de pago
    
      2) getPayOrder -> llama a curlRequest -> devuelve la orden de pago.
      Si es válida, se redirecciona al cliente para que efectúe el pago
    
    */
    
    // FUNCIONES LOCALES
    
    function curlRequest($url, $headers, $params) {
      $h = curl_init($url);
      curl_setopt($h, CURLOPT_HTTPHEADER, $headers);
      curl_setopt($h, CURLOPT_POSTFIELDS, json_encode($params));
      curl_setopt($h, CURLOPT_RETURNTRANSFER, true);
      $result = json_decode(curl_exec($h), true);
      curl_close($h);
      return $result;
    }
    
    function getAccessToken($url, $credencials) {
      $headers = array(
        'Content-Type: application/json'
      );
      return curlRequest($url, $headers, $credencials);
    }
    
    function getPayOrder($url, $credencials, $accesstoken, $amount, $description, $callback_fail_url, $callback_success_url) {
      $headers = array(
        'Content-Type: application/json',
        'Authorization: Bearer ' . $accesstoken['access_token']
      );
      $params = array(
        'amount' => $amount,
        'description' => $description,
        'userName' => $credencials['user_name'],
        'callback_fail' => $callback_fail_url,
        'callback_success' => $callback_success_url
      );
      return curlRequest($url, $headers, $params);
    }
    
    // ESTABLECER LOS PARÁMETROS PARA EFECTUAR EL PAGO
    
    $monto = '1.00'; // MONTO DE PRUEBA
    $descripcion = 'Venta'; // DESCRIPCIÓN DE PRUEBA
    $entorno = 'stage'; // TIPO DE ENTORNO. VALORES POSIBLES: stage / prod
    
    // PROPORCIONAR CLAVES Y URLS DE PRUEBA O PRODUCCIÓN SEGÚN SEA EL CASO
    
    $CREDENCIALS['user_name'] = 'tu_usuario_de_prueba_o_produccion';
    $CREDENCIALS['client_id'] = 'tu_clientid_de_prueba_o_produccion';
    $CREDENCIALS['client_secret_id'] = 'tu_clave_secreta_de_prueba_o_produccion';
    $CREDENCIALS['grant_type'] = 'client_credentials';
    
    $URLS['auth_token'] = 'https://auth.' . $entorno . '.ua.la/1/auth/token';
    $URLS['checkout'] = 'https://checkout.' . $entorno . '.ua.la/1/checkout';
    $URLS['callback_fail'] = 'tu_url_para_redireccion_pagos_denegados';
    $URLS['callback_success'] = 'tu_url_para_redireccion_pagos_aprobados';
    
    // GENERAR TOKEN
    $accesstoken = getAccessToken($URLS['auth_token'], $CREDENCIALS);
    
    if (is_null($accesstoken)) {
      echo '<p>Sin conexión. Intente más tarde.</p>';
    
    } else if (!isset($accesstoken['access_token'])) {
      echo '<p>Credenciales no válidas.</p>';
      print_r(json_encode($accesstoken)); // MUESTRA EL ERROR
    
    } else {
    
      // GENERAR ORDEN DE PAGO
      $payorder = getPayOrder($URLS['checkout'], $CREDENCIALS, $accesstoken, $monto, $descripcion, $URLS['callback_fail'], $URLS['callback_success']);
    
      if (isset($payorder['id']) && !empty($payorder['id'])) {
    
        // ALGUNAS ACCIONES POSIBLES:
    
        // 1) REDIRECCIONAR LA PÁGINA PARA QUE EL CLIENTE PUEDA ABONAR LA ORDEN DE PAGO
        // header('location: ' . $payorder['links']['checkoutLink']);
    
        // 2) MOSTRAR INFORMACIÓN SIMPLE DE LA ORDEN DE PAGO GENERADA
        // print_r(json_encode($payorder));
    
        // 3) MOSTRAR ENLACE A LA ORDEN DE PAGO, MONTO, DESCRIPCIÓN Y TIPO DE ENTORNO (PRUEBA / PRODUCCIÓN), ETC. CON FORMATO HTML
        echo
          '<p>Link de pago: <a href="' . $payorder['links']['checkoutLink'] . '">' . $payorder['links']['checkoutLink'] . '</a>' .
          '<br>Nro. de orden: ' . $payorder['orderNumber'] .
          '<br>Importe: ' . $monto .
          '<br>Descripción: ' . $descripcion .
          '<br>Tipo de entorno: ' . $entorno .
          '</p>';
    
      } else {
        echo '<p>No se pudo generar la orden de pago.</p>';
        print_r(json_encode($payorder)); // MUESTRA EL ERROR
      }
    }
    
    ?>
    </body>
    </html>

  • GaboPacchioniGaboPacchioni Miembros Publicaciones: 2
    Muchas gracias por tu respuesta!
    La implementación de la API la esta usando con WordPress + WooCommerce
    O has desarrollado algo a medida?
    Mucha gracias nuevamente
Accede o Regístrate para comentar.