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 obtener información detallada sobre el pedido por su ID enviando una consulta al servicio API utilizando métodos de software.

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

Donde username es el inicio de sesión del usuario en el sistema, así como su dominio de tercer nivel en el servicio SoloClic.

Su sistema recibirá la información de la factura como respuesta.

Parámetros transferidos en la consulta

El método puede contener:

bill_id - (int) ID de factura (obligatorio)
good_info - (bool) agregar la información del producto

Si pasa 1 o true en el parámetro good_info, se mostrará la siguiente información:

  • good_ids es la identificación del producto en la factura
  • good_count es el número de productos en la factura
  • prepayment_enabled muestra si se permite el pago por adelantado
  • prepayment_minsum es la cantidad mínima de prepago.

¿Como funciona?

Llamas a la función API getOrderDetails. Su sistema recibirá el resultado de la función que se realiza y la matriz de datos en la variable de resultado como respuesta.

La matriz de datos tendrá el siguiente aspecto:

stdClass Object (
[id] => número de factura,
[first_name] => nombre
[last_name] => apellido
[middle_name] => segundo nombre
[email] => correo electrónico
[phone] => número de teléfono
[city] => ciudad
[country] => país
[address] => habla a
[region] => región
[postalcode] => código postal
[created] => fecha de creación de la factura
[pay_status] => Estado de la factura
[paid] => fecha de pago de la factura
[type] => tipo de orden
[payway] => método de pago
[comment] => comentar la factura
[domain] => orden de dominio
[link] => enlace para pagar la página del pedido
[good_count] => la cantidad de productos en el pedido
[price] => precio del producto
[bill_sum_topay] => queda para pagar
[tag] => etiqueta
[kupon] => cupón usado

[utm] => stdClass Object
(
[medium] => parámetro utm del canal (si existe)
 => parámetro utm de origen (si existe)
[campaign] => parámetro utm de campaña (si existe)
[content] => anuncio utm-parámetro (si existe)
[term] => parámetro utm clave (si existe)
)

[items] => Array (
[0] => stdClass Object (
[id] => Identificador de Producto
[title] => nombre del producto
[sum] => el costo real
[price] => precio del producto de la configuración
[pincode] => código PIN transferido

[partners] => Array
(
[0] => stdClass Object
(
[partner_lvl] => nivel del programa de afiliados
[partner_id] => ID de socio
[partner_name] => inicio de sesión del socio
[partner_fee] => tarifa del socio
)

[1] => stdClass Object
(
[partner_lvl] => nivel del programa de afiliados
[partner_id] => ID de socio
[partner_name] => inicio de sesión del socio
[partner_fee] => tarifa del socio
)
)
)

[1] => stdClass Object (
[id] => Identificador de Producto
[title] => nombre del producto
[sum] => el costo real
[price] => precio del producto de la configuración
[pincode] => código PIN transferido
[partners] => Array
(
[0] => stdClass Object
(
[partner_lvl] => nivel del programa de afiliados
[partner_id] => ID de socio
[partner_name] => inicio de sesión del socio
[partner_fee] => tarifa del socio
)

[1] => stdClass Object
(
[partner_lvl] => nivel del programa de afiliados
[partner_id] => ID de socio
[partner_name] => inicio de sesión del socio
[partner_fee] => tarifa del socio
)
)
)
)
)

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.

Si transfirió el parámetro bill_domain a la función CreateOrder, la variable $ resr-> result [‘link’] contendrá el enlace completo para el pago en el formato https://your-domain.com/bill/… después de la respuesta. Puedes usarlo así, por ejemplo:

header("Location: " . $resp->result['link']);

Si no transfirió el parámetro bill_domain a la función CreateOrder, agregue el protocolo y el dominio al vínculo después de la respuesta:

header("Location: https://your-domain.com" . $resp->result['link']);

Ejemplo de obtención de la información de la factura en PHP

En el ejemplo, obtenemos la información del pedido 102937.

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

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

// 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 el conjunto de productos comprados para transferirlos a la API.
$send_data = array(
	'bill_id' => '102937', // orden ID
	'good_info' => true

);

// Formando el hash a los datos transmitidos.
$send_data['hash'] = GetHash($send_data, $user_rs);

// Llamar a la función getOrderDetails y decodificar los datos recibidos.
$resp = json_decode(Send('https://username.soloclic.com/api/getOrderDetails', $send_data));

// Comprobando la respuesta del servicio.
if(!CheckHash($resp, $user_rs)){
	echo "¡Error! ¡El hash de respuesta no es cierto!" ; print_r($resp);
	exit;
}

if($resp->error_code == 0){
	echo "La información del pedido: ";
	print_r($resp->result);
}
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);
}

// Comprobando el 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...