欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP代码转成java代码

程序员文章站 2022-04-14 17:02:12
...
<?php 

function bter_query($path, array $req = array()) { 
// API settings, add your Key and Secret at here 
$key = ''; 
$secret = ''; 

// generate a nonce to avoid problems with 32bits systems 
$mt = explode(' ', microtime()); 
$req['nonce'] = $mt[1].substr($mt[0], 2, 6); 

// generate the POST data string 
$post_data = http_build_query($req, '', '&'); 
$sign = hash_hmac('sha512', $post_data, $secret); 

// generate the extra headers 
$headers = array( 
'KEY: '.$key, 
'SIGN: '.$sign, 
); 

//!!! please set Content-Type to application/x-www-form-urlencoded if it's not the default value 

// curl handle (initialize if required) 
static $ch = null; 
if (is_null($ch)) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 
'Mozilla/4.0 (compatible; Bter PHP bot; '.php_uname('a').'; PHP/'.phpversion().')' 
); 
} 
curl_setopt($ch, CURLOPT_URL, 'https://bter.com/api/'.$path); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

// run the query 
$res = curl_exec($ch); 

if ($res === false) throw new Exception('Curl error: '.curl_error($ch)); 
//echo $res; 
$dec = json_decode($res, true); 
if (!$dec) throw new Exception('Invalid data: '.$res); 
return $dec; 
} 

function get_top_rate($pair, $type='BUY') { 
$rate = 0; 

// our curl handle (initialize if required) 
static $ch = null; 
if (is_null($ch)) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 
'Mozilla/4.0 (compatible; Bter PHP bot; '.php_uname('a').'; PHP/'.phpversion().')' 
); 
} 
curl_setopt($ch, CURLOPT_URL, 'https://bter.com/api/1/depth/'.$pair); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

// run the query 
$res = curl_exec($ch); 
if ($res === false) throw new Exception('Could not get reply: '.curl_error($ch)); 
//echo $res; 
$dec = json_decode($res, true); 
if (!$dec) throw new Exception('Invalid data: '.$res); 

if (strtoupper($type) == 'BUY') { 
$r =  $dec['bids'][0]; 
$rate = $r[0]; 
} else  { 
$r = end($dec['asks']); 
$rate = $r[0]; 
} 

return $rate; 
} 


try { 
// example 1: get funds 
var_dump(bter_query('1/private/getfunds')); 

// example 2: place a buy order 
$pair = 'ltc_btc'; 
$type = 'buy'; 
$rate = get_top_rate($pair, $type) * 1.01; 
var_dump(bter_query('1/private/placeorder', 
array( 
'pair' => "$pair", 
'type' => "$type", 
'rate' => "$rate", 
'amount' => '0.01', 
) 
  ) 
); 

// example 3: cancel an order 
var_dump(bter_query('1/private/cancelorder', array('order_id' => 125811))); 

// example 4: get order status 
var_dump(bter_query('1/private/getorder', array('order_id' => 15088))); 

//example 5: list all open orders 
var_dump(bter_query('1/private/orderlist')); 

} catch (Exception $e) { 
echo "Error:".$e->getMessage(); 

} 
?>