Вот как-то так:
<?php
class indx {
var $login;
var $pass;
var $wmid;
var $culture;
var $client;
function indx($login, $pass, $wmid, $culture = 'en-EN')
{
$this->login = $login;
$this->pass = $pass;
$this->wmid = $wmid;
$this->culture = $culture;
$this->client = curl_init('https://api.indx.ru/');
curl_setopt($this->client, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($this->client, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->client, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->client, CURLOPT_SSL_VERIFYPEER, '');
curl_setopt($this->client, CURLOPT_TIMEOUT, 15);
curl_setopt($this->client, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($this->client, CURLOPT_HTTPHEADER, array('Content-Type: text/json; charset=UTF-8'));
curl_setopt($this->client, CURLOPT_POST, 1);
}
function Tools()
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/Tools');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"}}');
return json_decode(curl_exec($this->client));
}
function Balance()
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture.';'.$this->wmid,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/Balance');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"}}');
return json_decode(curl_exec($this->client));
}
function OfferMy()
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture.';'.$this->wmid,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/OfferMy');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"}}');
return json_decode(curl_exec($this->client));
}
function OfferList($ID)
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture.';'.$this->wmid.';'.$ID,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/OfferList');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"},"Trading":{"ID":'.$ID.'}}');
return json_decode(curl_exec($this->client));
}
function HistoryTrading($ID, $DateStart, $DateEnd)
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture.';'.$this->wmid.';'.$ID.';'.$DateStart.';'.$DateEnd,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/HistoryTrading');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"},"Trading":{"ID":'.$ID.',"DateStart":"'.$DateStart.'","DateEnd":"'.$DateEnd.'"}}');
return json_decode(curl_exec($this->client));
}
function HistoryTransaction($ID, $DateStart, $DateEnd)
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture.';'.$this->wmid.';'.$ID.';'.$DateStart.';'.$DateEnd,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/HistoryTransaction');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"},"Trading":{"ID":'.$ID.',"DateStart":"'.$DateStart.'","DateEnd":"'.$DateEnd.'"}}');
return json_decode(curl_exec($this->client));
}
function OfferAdd($ID, $Price, $IsBid /* true - покупка, false - продажа */, $Count = 1, $IsAnonymous = true)
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture.';'.$this->wmid.';'.$ID,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/OfferAdd');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"},"Offer":{"ID":'.$ID.',"Count":'.$Count.',"IsAnonymous":'.($IsAnonymous?'true':'false').',"IsBid":'.($IsBid?'true':'false').',"Price":'.$Price.'}}');
return json_decode(curl_exec($this->client));
}
function OfferDelete($offerID)
{
$sign = base64_encode(hash('sha256',$this->login.';'.$this->pass.';'.$this->culture.';'.$this->wmid.';'.$offerID,true));
curl_setopt($this->client, CURLOPT_URL, 'https://api.indx.ru/api/v2/trade/OfferDelete');
curl_setopt($this->client, CURLOPT_POSTFIELDS, '{"ApiContext":{"Login":"'.$this->login.'","Wmid":"'.$this->wmid.'","Culture":"'.$this->culture.'","Signature":"'.$sign.'"},"OfferID":'.$offerID.'}');
return json_decode(curl_exec($this->client));
}
}
Сообщение отредактировал barlone: 15 мая 2018 - 07:37