Главное
Основная информация
Генерация подписи
Депозиты
Начало работы
Создание депозита
Создание депозита без переадресации (iframe)
Уведомление о депозите (webhook)
Проверка статуса депозита
Получение списка депозитов
Депозиты без 8 дневного ожидания (Steam Trade Protection)
Одобрение депозита с 8 дневным холдом
Недошедшие уведомления о платежах
Депозиты без SkinsBack UI
Создание депозита без SkinsBack UI (API)
Получить инвентарь пользователя
Вывод скинов
Прайс-лист (наличие скинов)
Поиск скинов
Купить скин
Массовая покупка скинов
Статус покупки скина
История покупок скинов
Другое
Баланс проекта
История выводов с баланса и депозитов
Валюты и курсы
Статус сервера
Real-time обновления: WebSockets
Real-time обновления: WebHooks
Генерация подписи
Подпись формируется посредством конкатенации всех параметров в виде "key:value;" и преобразования к SHA1 HMAC подписанной с помощью Client Secret. Массивы и объекты пропускаются. Узнать Client Secret можно в кабинете мерчанта.
Пример генерации подписи на 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);
Пример генерации подписи на 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);
Пример запроса с подписью на 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/ru/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: пример сверки подписи на PHP:
<?php
$clientSecret = '123'; // Client Secret
// @see https://skinsback.com/ru/docs/api/v1/signature/
if($_POST['sign'] != buildSignature($_POST, $clientSecret))
{
die('Wrong signature');
}