来自我的博客:http://www.meedee.cn/2016/07/06/%e5%85%8d%e8%b4%b9%e7%9a%84%e6%b1%87%e7%8e%87api/
1 https://currencylayer.com/
documents:https://currencylayer.com/documentation
免费功能:1个月1000次的api记录,可以使用live,historical,可以传currencies获取指定的货币汇率。
不能使用convert,source,from,to,amout等参数
php实现代码
配置文件
'CURRENCY_API'=>"http://apilayer.net/api/historical?access_key=xxx&format=1"
public function testCurrencyApi()
{
$date = I("request.date") ? I("request.date") : "2016-07-02";
$price = I("request.price") ? I("request.price") : "100";
$from = I("request.from") ? I("request.from") : "CNY";
//$currencies = I("request.currencies") ? I("request.currencies") : "HKD,CNY,USD,AUD,MOP,MYR";
$to = "HKD";
$source = "USD";
// AUD:澳幣,MOP:澳門幣,MYR:馬來西亞
$endpoint = C("CURRENCY_API");
//$searchData['currencies'] = $currencies;
$searchData['date'] = $date;
//$searchData['price'] = $price;
$endpoint .= "&" . http_build_query($searchData);
$memcache_key = md5($endpoint);
$cache = S(array('type'=>'memcache','host'=>C("MEMCACHE_HOST"),'port'=>C("MEMCACHE_PORT"),'expire'=>0));
$memcache_data = S($memcache_key);
if ($memcache_data) {
$currency = $memcache_data;
echo "use cache!
";
} else {
$result = addCurl($endpoint);
$currency = json_decode($result,true);
S($memcache_key, $currency);
}
if (!$currency['success']) {
$this->response(false, "get api failed");
}
$quotes = $currency['quotes'];
//dump($quotes);
// to usd
$usdPrice = $price / $quotes[$source . $from];
echo "currency date:" . $currency['date'] . "
";
echo "usd price:{$usdPrice}
";
$hkdPrice = $usdPrice * $quotes[$source . $to];
echo "hk price:" . round($hkdPrice, 2);
}
相关文章
- 在eclipse API中,如何从位于项目或工作区外的文件中获取IFile
- 任何人均可上手的数据库与API搭建平台
- 【和ChatGPT对话】在解答函数和API实现之间反复横跳 - 容易忘事的一次性选手
- 关于CI框架加入sphinx官方API接口文件的时候,需要注意的问题
- 请问怎么用API获取当前程序文件的全路径名
- 华为云API Arts:用“1+1+5”的模式,为你带来API-First体验
- 基于ChatGPT的API的C#接入研究
- WinForm 对Web Api 增 册 改 查 的基本操作
- 基于 ArcGIS Silverlight API开发的WebGIS应用程序的部署
- 黑马程序员android全套60G视频教程免费分享(要的留下邮箱)