Principal
Información principal
Generación de firma
Depósitos
Empezando
Creación de depósito
Creación de depósito sin redireccionamiento (iframe)
Notificación de depósito (webhook)
Verificación del estado del depósito
Obtener lista de depósitos
Depósitos sin período de espera de 8 días (Steam Trade Protection)
Aprobación de depósito con retención de 8 días
Recibir notificaciones de webhooks fallidos
Depósitos sin SkinsBack UI
Create a deposit without SkinsBack UI (API)
Crear un depósito sin SkinsBack UI (API)
Retiro de skins
Lista de precios (disponibilidad de skins)
Buscar skins
Comprar skin
Compra de skins al por mayor
Estado de compra de skin
Historial de compras de skins
Otro
Saldo del proyecto
Historial de retiros del saldo y depósitos
Monedas y tasas
Estado del servidor
Eventos en tiempo real: websockets
Eventos en tiempo real: webhooks
Generación de firma
La firma se genera concatenando todos los parámetros en el formato "key:value;" y luego se convierte en un HMAC SHA1 firmado con el Client Secret. Los arreglos y objetos se omiten. Puede obtener el Client Secret en el panel de control del comerciante.
Ejemplo de generación de firma en PHP:
<?php
function buildSignature($params, $clientSecret)
{
ksort($params);
$paramsString = '';
foreach($params AS $key => $value)
{
if($key == 'sign') continue;
if(is_array($value)) { continue; }
$paramsString .= $key .':'. $value .';';
}
$sign = hash_hmac('sha1', $paramsString, $clientSecret);
return $sign;
}
$clientSecret = '123'; // Client Secret
$params = array(
'method' => 'orderstatus',
'order_id' => 1,
'shopid' => '123' // Client ID
);
$params['sign'] = buildSignature($params, $clientSecret);
Ejemplo de generación de firma en JavaScript:
function buildSignature(params, clientSecret)
{
var paramsString = '';
Object.keys(params).sort().forEach(function(key)
{
if (key === 'sign') return;
if(typeof params[key] == 'object') return;
paramsString += '' + key + ':' + params[key] + ';';
});
var crypto = require('crypto');
paramsString = crypto.createHmac('sha1', clientSecret).update(paramsString).digest('hex');
return paramsString;
}
var clientSecret = '123'; // Client Secret
var params = {
method: 'orderstatus',
order_id: 1,
shopid: '123' // Client ID
}
params.sign = buildSignature(params, clientSecret);
Ejemplo de solicitud con firma en PHP:
<?php
$params = array(
'shopid' => '1', // Client ID
'method' => 'create',
'order_id' => 1,
'steam_id' => '76561198827262007',
'trade_token' => 'i1ArBZey',
'currency' => 'usd'
);
$clientSecret = '123123123123213';
// @see https://skinsback.com/es/docs/api/v1/signature/
$params['sign'] = buildSignature($params, $clientSecret);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://skinsback.com/api.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
var_dump($server_output);
Webhook: ejemplo de verificación de firma en PHP:
<?php
$clientSecret = '123'; // Client Secret
// @see https://skinsback.com/es/docs/api/v1/signature/
if($_POST['sign'] != buildSignature($_POST, $clientSecret))
{
die('Wrong signature');
}