Para integrarse con otros servicios y aplicaciones, recomendamos configurar la integración a través de Zapier.
Podrá transferir datos entre servicios sin la ayuda de programadores.
Obtenga más información sobre la integración a través de Zapier

Puede cambiar el estado del pedido, transferir la fecha de envío, la fecha de pago y el número de seguimiento.

La consulta se envía mediante el método POST en formato URLencode a la dirección: https://username.soloclic.com/api/UpdateOrderStatus.

Parámetros transferidos en la consulta

  • bill_id es el número de orden;
  • status es el estado del pedido (enviado significa que el pedido fue enviado por correo, pagado significa que se realizó el pago del pedido, devolución significa que el cliente devolvió el pedido, cancelar significa que el pedido fue cancelado);
  • date es el momento de enviar el pedido por correo o de su pago, en segundos a partir del 1 de enero de 1970, la denominada marca de tiempo UNIX (estados obligatorios de envío y pago);
  • rpo es el número de seguimiento del envío postal (requerido para el estado de envío).

¿Como funciona?

Transfiere el número de pedido, su estado y datos adicionales. El sistema cambia el estado del pedido y agrega los parámetros dados a la información del pedido.

Su sistema recibirá el resultado de la función en formato JSON como respuesta. Para obtener más detalles, consulte la Estados, Códigos y Descripciones de respuesta de API.

Ejemplo de actualización del pedido en PHP

En el ejemplo, cambiamos el estado del pedido 100000 a «enviado». El código de seguimiento es 10000000000000. La fecha de envío es el 3 de marzo de 2013 00:00, que corresponde a la marca de tiempo 1362254400.

La función GetHash forma el hash de los datos transferidos.

La función CheckHash comprueba el hash de la respuesta del servicio.

<?php
  // Inicie sesión en el sistema SoloClic
  $user_rs['user_id'] = 'username';
  // La clave para formar un hash. Consulte la sección API (el enlace en la esquina inferior derecha de la cuenta personal)
  $user_rs['user_rps_key'] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

  // Formando la matriz de datos para transferir a la API
  $send_data = array(
    'bill_id' => '100000',
    'status' => 'sent',
    'date' => '1362254400',
    'rpo' => '10000000000000',
   );
  // Formando el hash a los datos transmitidos
  $send_data['hash'] = GetHash($send_data, $user_rs);
  // Llamar a la función de API UpdateOrderStatus y decodificar los datos recibidos
  $resp = json_decode(Send('https://username.soloclic.com/api/UpdateOrderStatus', $send_data));
  // Verificando la respuesta del servicio
  if(!CheckHash($resp, $user_rs)){
    echo "¡Error! ¡El hash de respuesta no es cierto!";
    exit;
  }
  if($resp->error_code == 0)
    echo "El estado del pedido se actualiza: {$resp->error_code}";
  else
    echo "Código de error: {$ resp-> error_code} - descripción: {$resp->error_text}";

// =========== Funciones de enviar, recibir y procesar una respuesta ============

  // Envío de la consulta al servicio API
  function Send($url, $data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // dando salida a la respuesta a la variable
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
  }
  // Formando el hash de datos transferidos a la API
  function GetHash($params, $user_rs) {
    $params = http_build_query($params);
    $user_id = $user_rs['user_id'];
    $secret = $user_rs['user_rps_key'];
    $params = "$params::$user_id::$secret";
    return md5($params);
  }
  // Comprobación del hash de respuesta recibido
  function CheckHash($resp, $user_rs) {
    $secret = $user_rs['user_rps_key'];
    $code = $resp->error_code;
    $text = $resp->error_text;
    $hash = md5("$code::$text::$secret");
    if($hash == $resp->hash)
      return true; // el hash es correcto
    else
      return false; // el hash no es correcto
  }
?>

Rate article

1 star2 stars3 stars4 stars5 stars (No votes)
Cargando...