Author

Topic: Bitcoin Price Ticker Fix - PLEASE HELP! (Read 907 times)

hero member
Activity: 749
Merit: 503
Blockchain Just Entered The Real World
May 24, 2014, 02:25:17 PM
#11
there's a ready-made solution, fully customizable widgets and price tickers https://www.cryptonator.com/widget
full member
Activity: 147
Merit: 102
Jessy, rather than picking just one exchange you could use our API which provides a weighted average of around 40 exchanges currently:

https://api.bitcoinaverage.com/

example USD request:

https://api.bitcoinaverage.com/ticker/global/USD/

If you have want a PHP snippet please email us and we'll knock something up for you: [email protected]
member
Activity: 87
Merit: 10
full member
Activity: 191
Merit: 100
member
Activity: 87
Merit: 10
legendary
Activity: 2394
Merit: 1216
The revolution will be digital
member
Activity: 87
Merit: 10
Can anyone help please

You are getting a bad result because you are not using the Bitstamp PHP api. Copy and paste the following code into a new php file:
Code:

/**
* @package Bitstamp API
* @author https://bxmediaus.com - BX MEDIA - PHP + Bitcoin. We are ready to work on your next bitcoin project. Only high quality coding. https://bxmediaus.com
* @version 0.1
* @access public
* @license http://www.opensource.org/licenses/LGPL-3.0
*/

class Bitstamp
{
private 
$key;
private 
$secret;
private 
$client_id;
public 
$redeemd// Redeemed code information
public $withdrew// Withdrawal information
public $info// Result from getInfo()
public $ticker// Current ticker (getTicker())
public $eurusd// Current eur/usd
/**
* Bitstamp::__construct()
* Sets required key and secret to allow the script to function
* @param Bitstamp API Key $key
* @param Bitstamp Secret $secret
* @return
*/
public function __construct($key$secret$client_id)
{
if (isset(
$secret) && isset($key) && isset($client_id))
{
$this->key $key;
$this->secret $secret;
$this->client_id $client_id;
} else
die(
"NO KEY/SECRET/CLIENT ID");
}
/**
* Bitstamp::bitstamp_query()
*
* @param API Path $path
* @param POST Data $req
* @return Array containing data returned from the API path
*/
public function bitstamp_query($path, array $req = array(), $verb 'post')
{
// API settings
$key $this->key;

// generate a nonce as microtime, with as-string handling to avoid problems with 32bits systems
$mt explode(' 'microtime());
$req['nonce'] = $mt[1] . substr($mt[0], 26);
$req['key'] = $key;
$req['signature'] = $this->get_signature($req['nonce']);


// generate the POST data string
        
$post_data http_build_query($req'''&');

// any extra headers
$headers = array();

// our curl handle (initialize if required)
static $ch null;
if (
is_null($ch))
{
$ch curl_init();
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_USERAGENT,
'Mozilla/4.0 (compatible; MtGox PHP Client; ' php_uname('s') . '; PHP/' .
phpversion() . ')');
}
curl_setopt($chCURLOPT_URL'https://www.bitstamp.net/api/' $path .'/');
curl_setopt($chCURLOPT_SSL_VERIFYPEER1); // man-in-the-middle defense by verifying ssl cert.
curl_setopt($chCURLOPT_SSL_VERIFYHOST2); // man-in-the-middle defense by verifying ssl cert.
        
if ($verb == 'post')
        {
            
curl_setopt($chCURLOPT_POSTFIELDS$post_data);
        }
curl_setopt($chCURLOPT_HTTPHEADER$headers);

// run the query
$res curl_exec($ch);
if (
$res === false)
throw new \
Exception('Could not get reply: ' curl_error($ch));
$dec json_decode($restrue);
if (
is_null($dec))
throw new \
Exception('Invalid data received, please make sure connection is working and requested API exists');
return 
$dec;
}

/**
* Bitstamp::ticker()
* Returns current ticker from Bitstamp
* @return $ticker
*/
function ticker() {
$ticker $this->bitstamp_query('ticker', array(), 'get');
$this->ticker $ticker// Another variable to contain it.
return $ticker;
}

/**
* Bitstamp::eurusd()
* Returns current EUR/USD rate from Bitstamp
* @return $eurusd
*/
function eurusd() {
$eurusd $this->bitstamp_query('eur_usd', array(), 'get');
$this->eurusd $eurusd// Another variable to contain it.
return $eurusd;
}

/**
* Bitstamp::buyBTC()
*
* @param float $amount
* @param float $price
*/
function buyBTC($amount$price=NULL){
if(
is_null($price)){
if (!isset(
$this->ticker))
$this->ticker();

$price $this->ticker['ask'];
}

return 
$this->bitstamp_query('buy', array('amount' => $amount'price' => $price));
}

/**
* Bitstamp::sellBTC()
*
* @param float $amount
* @param float $price
*/
function sellBTC($amount$price=NULL){
if(
is_null($price)){
if (!isset(
$this->ticker))
$this->ticker();

$price $this->ticker['bid'];
}

return 
$this->bitstamp_query('sell', array('amount' => $amount'price' => $price));
}

/**
* Bitstamp::transactions()
*
* @param string $time
*/
function transactions($time='hour'){
return 
$this->bitstamp_query('transactions', array('time' => $time), 'get');
}

/**
* Bitstamp::orderBook()
*
* @param int $group
*/
function orderBook($group=1){
return 
$this->bitstamp_query('order_book', array('group' => $group), 'get');
}

/**
* Bitstamp::openOrders()
* List of open orders
*/
function openOrders(){
return 
$this->bitstamp_query('open_orders');
}

/**
* Bitstamp::cancelOrder()
*
* @param int $id
*/
function cancelOrder($id=NULL){
if(
is_null($id))
throw new 
Exception('Order id is undefined');
return 
$this->bitstamp_query('cancel_order', array('id' => $id));
}

/**
* Bitstamp::balance()
*
*/
function balance(){
$balance $this->bitstamp_query('balance');
$this->balance $balance// Another variable to contain it.
return $balance;
}


/**
* Bitstamp::unconfirmedbtc()
*
*/
function unconfirmedbtc(){
$unconfirmedbtc $this->bitstamp_query('unconfirmed_btc');
$this->unconfirmedbtc $unconfirmedbtc// Another variable to contain it.
return $unconfirmedbtc;
}

/**
* Bitstamp::bitcoindepositaddress()
*
*/
function bitcoindepositaddress(){
$bitcoindepositaddress $this->bitstamp_query('bitcoin_deposit_address');
$this->bitcoindepositaddress $bitcoindepositaddress// Another variable to contain it.
return $bitcoindepositaddress;
}

/**
* Bitstamp::get_signature()
* Compute bitstamp signature
* @param float $nonce
*/
private function get_signature($nonce)
{

$message $nonce.$this->client_id.$this->key;

return 
strtoupper(hash_hmac('sha256'$message$this->secret));

}
}

Save it in the same directory as your other code as "bitstamp.php". Now change your other code to the following:
Code:
require_once('bitstamp.php');
$KEY = "YOUR KEY";
$SECRET = "YOUR SECRET";
$CLIENT_ID = "YOUR CLIENT ID";

$bs = new Bitstamp($KEY,$SECRET,$CLIENT_ID);

print_r($bs->ticker());

Then create an account on bitstamp, verify your account, then on their website, go to Security then API access. Copy and past the key, secret, and client id they provide you with into the matching variables in the code I just gave you. That should do the trick.
full member
Activity: 191
Merit: 100
Can anyone help please
full member
Activity: 191
Merit: 100
First off, switch the URL to https://www.bitstamp.net/api/ticker/ and see what it reads

Thanks for the idea but it doesn't work. I tried https://blockchain.info/ticker too and that didn't work.
member
Activity: 85
Merit: 10
First off, switch the URL to https://www.bitstamp.net/api/ticker/ and see what it reads
full member
Activity: 191
Merit: 100
I'm using this bitcoin price ticker that is using Mt.Gox but they're no longer in service unfortunately. I'm trying to replace Mt.Gox with blockchain or something similar. Can anyone please help me fix this?

Code:
        //first fetch the current rate from MtGox
        
$ch curl_init('https://mtgox.com/api/0/data/ticker.php');
                
curl_setopt($chCURLOPT_REFERER'Mozilla/5.0 (compatible; MtGox PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
                
curl_setopt($chCURLOPT_USERAGENT"CakeScript/0.1");
                
curl_setopt($chCURLOPT_HEADER0);
                
curl_setopt($chCURLOPT_RETURNTRANSFER1);
                
curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse);
                
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
                
$mtgoxjson curl_exec($ch);
                
curl_close($ch);
               
        
//decode from an object to array
                
$output_mtgox json_decode($mtgoxjson);
                
$output_mtgox_1 get_object_vars($output_mtgox);
                
$mtgox_array get_object_vars($output_mtgox_1['ticker']);
 
?>





Last: echo $mtgox_array['last'];   ?>

High: echo $mtgox_array['high'];   ?>

Low:  echo $mtgox_array['low'];   ?>

Avg:   echo $mtgox_array['avg'];   ?>

Vol:   echo $mtgox_array['vol'];   ?>
Jump to: