public function testNotSupported() { $this->setExpectedException('Exception'); $converter = CurrencyConverter::get_converter(); $converter->setCurrencies(array('NZD' => 2, 'USD' => 5)); $converter->rateForCurrency('YEN'); }
/** * This method generates JSON String for Wallet Balance * * @param $SelectedCurrency * @param $CurrentBalance * * @return string */ private static function CreateBalanceJSON($SelectedCurrency, $CurrentBalance) { $AvailableCurrencies = array('RUB', 'EUR', 'USD', 'GBP'); $BaseCurrency = "USD"; $BalanceArray = array(); foreach ($AvailableCurrencies as $Currency) { if ($BaseCurrency == $SelectedCurrency && $Currency == $SelectedCurrency) { $BalanceArray[$Currency] = array("currency" => $Currency, "balance" => $CurrentBalance, "pendingBalance" => 0, "balanceQuotaUsage" => null, "balanceIncludingPending" => $CurrentBalance + 0); } else { $ConvertRate = new CurrencyConverter($BaseCurrency, $Currency); $ConvertedBalance = $ConvertRate->toForeign($CurrentBalance); $BalanceArray[$Currency] = array("currency" => $Currency, "balance" => round($ConvertedBalance, 2), "pendingBalance" => 0, "balanceQuotaUsage" => null, "balanceIncludingPending" => round($ConvertedBalance, 2) + 0); } } $ServerData = array("serverHostname" => $_SERVER['SERVER_NAME'], "serverPort" => $_SERVER['SERVER_PORT'], "serverScheme" => 'http', "countryCodeAlpha3" => $SelectedCurrency); $BalanceArray = array_merge($BalanceArray, $ServerData); return json_encode($BalanceArray); }
{ $dbh = $this->db_connect(); $stmt = $dbh->prepare('SELECT currency,rate FROM conversions'); $stmt->execute(); $result = array(); while ($conversion = $stmt->fetch()) { $result[$conversion['currency']] = array(); $result[$conversion['currency']]['rate'] = floatval($conversion['rate']); } unset($stmt); unset($dbh); return $result; } } // class CurrencyConverter header("Content-type: text/javascript"); // convert a single amount: /* $currency = $_GET['currency']; $amount = $_GET['amount']; $obj = new CurrencyConverter(); $usd = $obj->convert($currency,$amount); echo json_encode(array('usd',$usd)); */ $obj = new CurrencyConverter(); $result = json_encode($obj->getConversions()); // allow both jsonP and json: if (isset($_GET["callback"])) { echo preg_replace("/[^a-zA-Z0-9_]/", "", $_GET["callback"]) . "(" . $result . ")"; } else { echo $result; }
<?php /** * Created by SUR-SER. * User: SURO * Date: 22.08.2015 * Time: 3:49 */ require_once 'ICurrencyConversion.php'; require_once 'ICurrencyConverterService.php'; require_once 'CurrencyConverter.php'; require_once 'CurrencyServices\\CbaService.php'; require_once 'CurrencyServices\\GoogleService.php'; $converter = new CurrencyConverter(new CurrencyServices\CbaService()); var_dump($converter->convert([['USD', 'RUB', 10], ['RUB', 'USD', 50000], ['AMD', 'USD', 1000], ['USD', 'AMD', 10]])); //var_dump($converter->getCurrencies()); $converter->setService(new CurrencyServices\GoogleService()); var_dump($converter->convert([['USD', 'RUB', 10], ['RUB', 'USD', 50000], ['AMD', 'USD', 1000], ['USD', 'AMD', 10]]));
$row = $res->fetch_assoc(); $convertedCurrency[] = $this->defaultCurrency . ' ' . number_format((double) $row['rate'] * (double) $amount, 2); } $stmt->close(); return $convertedCurrency; } /** * Converts the input into its corresponding exchange rate * * @param string $transaction A string containing the currency symbol and original amount e.g., CHF 123.45 * @return string A string containing the computed exchange rate in the default currency e.g., USD 146.80 */ private function convertCurrencyByAmount($transaction) { list($currency, $amount) = explode(" ", $transaction); $stmt = $this->mysqli->prepare("SELECT currency, rate FROM exchange_rates WHERE currency = ?"); $stmt->bind_param("s", $currency); $stmt->execute(); $res = $stmt->get_result(); $row = $res->fetch_assoc(); $stmt->close(); return $this->defaultCurrency . ' ' . number_format((double) $row['rate'] * (double) $amount, 2); } public function __destruct() { $this->mysqli->close(); } } $cc = new CurrencyConverter(); echo $cc->convertCurrency('AUD 562.5') . "\n"; print_r($cc->convertCurrency(array('JPY 5000', 'CZK 62.5')));