Główny
Podstawowe informacje
Generowanie podpisu
Depozyty
Pierwsze kroki
Tworzenie depozytu
Tworzenie depozytu bez przekierowania (iframe)
Powiadomienie o wpłacie (webhook)
Sprawdzanie statusu depozytu
Uzyskanie listy depozytów
Depozyty bez 8-dniowego oczekiwania (Steam Trade Protection)
Zatwierdzenie depozytu z 8-dniowym holdem
Otrzymuj powiadomienia o nieudanych webhookach
Depozyty bez interfejsu użytkownika SkinsBack
Create a deposit without SkinsBack UI (API)
Pobierz ekwipunek użytkownika
Wyjście skinów
Cennik (dostępność skinów)
Wyszukaj skinów
Kup skiny
Kupuj skórki hurtowo
Stan zakupu skina
Historia zakupów skinów
Inny
Bilans projektu
Historia wypłat z salda i depozytów
Waluty i kursy
Status serwera
Zdarzenia w czasie rzeczywistym: websockets
Zdarzenia w czasie rzeczywistym: webhooki
Generowanie podpisu
Podpis tworzony jest poprzez połączenie wszystkich parametrów w postaci "key:value;" i konwersja do SHA1 HMAC podpisana Client Secret. Tablice i obiekty są pomijane. Client Secret możesz znaleźć na koncie sprzedawcy.
Przykład generowania podpisu w 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);
Przykład generowania podpisu w 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);
Przykład podpisanego żądania w 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/pl/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: przykład weryfikacji podpisu w PHP:
<?php
$clientSecret = '123'; // Client Secret
// @see https://skinsback.com/pl/docs/api/v1/signature/
if($_POST['sign'] != buildSignature($_POST, $clientSecret))
{
die('Wrong signature');
}