Hi friends

i am working for an shopping cart using php script, i placed a drop down option to display currency rate as per user selection(INR and USD). By default it will display all the price in INR, if any user select USD, then it has to show all the values in USD.I dont know how to display the USD live rates. can any one please help to resove the issue.

Member Avatar for diafol

You could use a site like this - which has an API. I assume that you'll need an API of some description.

https://openexchangerates.org/

You could get a free account or depending on your traffic, pay something like $12/mo.

Thanks diafol, i will check it

You'll need to use an exchange rate API, then parse/decode the results. Google and Yahoo each have APIs (a quick search should turn up more info), and another resource I found is https://openexchangerates.org/

EDIT: Just saw diafol's response. Sorry, had this tab open for a while before I got to it.

HI Friends

Thanks for your post, with help of your post i got an idea and i used the below free API code

<?php
        $from   = 'USD'; /*change it to your required currencies */
        $to     = 'INR';
        $url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X';
        $handle = @fopen($url, 'r');

        if ($handle) 
            {
                $result = fgets($handle, 4096);
                fclose($handle);
            }
        $allData = explode(',',$result); /* Get all the contents to an array */
        $dollarValue = $allData[1];

        echo 'Value of $1 in Indian Rupees is &#x20B9; '.$dollarValue;
?>

Thank You. Its Working, I have little change on it....

<?php

$_POST['amount']="35.00";
$_POST['from']="INR";
$_POST['to']="USD";

$amount = urlencode($_POST['amount']);
$from_Currency = urlencode($_POST['from']);
$to_Currency = urlencode($_POST['to']);

$url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from_Currency . $to_Currency .'=X';
$handle = @fopen($url, 'r');
if ($handle) 
{
    $result = fgets($handle, 4096);
    fclose($handle);

    $allData = explode(',',$result); /* Get all the contents to an array */
    $dollarValue = $allData[1]*$amount;
    echo  round($dollarValue , 2);
}
else{
    echo "ERROR";
}

?>

I got error "It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com." after 2-3 weaks of using this code.
Please advice some another working yahoo api.

Not working now ...... Yahoo shutdown this service.

If any other way to get value then please let me know.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.