货币汇率计算

作者: 杏花_我不想活了 | 来源:发表于2018-08-22 16:47 被阅读0次

今天steam游戏开发时,游戏内置商店商品价格定价只有人民币(CNY);而没有其他币种价格的设置,于是做了一个简单的货币兑换。
依照:百度汇率计算,修改了url参数

function rateAmount($currency, $price)
{
        //$baseCurrency:基本币种    $currency:转换币种
        //币种可识别中文和ISO 4217 currency code
        $query = urlencode('1' . $baseCurrency . '=' . $currency);
        $url = 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=' .
            $query .
            '&co=&resource_id=6017&t=' .
            time() * 1000 .
            '&cardId=6017&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&' .
            'cb=jQuery110209644633764682506_1534919455172&_=' .
            time() * 1000;
        $response = file_get_contents($url);
        //返回值是gbk格式的,转一下
        $response = iconv('GBK', 'UTF-8', $response);
        $json = substr($response, strpos($response, '(') + 1);
        $data = json_decode(substr($json, 0, -2), true);

        $result = $data['data'][0]['content1'];
        $rate = substr($result, strpos($result, '=') + 1, 5);
        //steam要求价格必须为整元且单位为分,比如1000而没有1050。
        $gameAmount = ceil($price / 100 * $rate) * 100;

        return (int)$gameAmount;
}

  1. 上述方法总感觉差强人意,其他的一些基本上都要给钱或者次数限制;
    以下为steam官方api方法:
    文档地址:http://steam.steamlytics.xyz/api
function rateAmount($currency, $amount)
{
        $baseUrl = 'http://api.steam.steamlytics.xyz/v1/currencies/';
        $apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

        $responseCurrencies = Cache::remember('currencies', 10, function () use ($baseUrl, $apiKey) {
            $url = $baseUrl . '?key=' . $apiKey;
            $response = $this->client->request('GET', $url);
            $json = json_decode($response->getBody(), true);

            return $json['currencies'];
        });

        $gameCurrencyId = 0;
        $currencyId = 0;

        foreach ($responseCurrencies as $id => $responseCurrency) {
            if ($responseCurrency['code'] == 'CNY') {
                $gameCurrencyId = $id;
            }

            if ($responseCurrency['code'] == $currency) {
                $currencyId = $id;
            }
        }

        $rateUrl = $baseUrl . 'convert/' . $amount . '/' . $gameCurrencyId . '/' .
            $currencyId . '?key=' . $apiKey;
        $rateResponse = $this->client->request('GET', $rateUrl);
        $data = json_decode($rateResponse->getBody(), true);

        $payAmount = $data['amount'];
}

相关文章

  • 货币汇率计算

    今天steam游戏开发时,游戏内置商店商品价格定价只有人民币(CNY);而没有其他币种价格的设置,于是做了一个简单...

  • 说说外汇理财有哪些优势

    外汇四大亮点: 1、外汇不是资金盘,是一个全球化货币汇率变动而量化交易 2、用科学计算手段,获得汇率变化的中间差价...

  • 查找货币汇率

    调用:BAPI_EXCHANGERATE_GETDETAIL 日元对人民币的汇率 = 7.21 * (1/100)...

  • 货币汇率对房价的影响

    房价,近些年来,一直是人们所关心和议论的话题。而面对房价的不断攀升,民众苦不堪言,却又无任何办法。 眼下,虽然各方...

  • 从20世纪的荷兰病到随后的荷兰奇迹:诊治荷兰病的药方

    荷兰病(Dutch Disease)是一个和自然资源与经济发展相关的术语,指由于出口自然资源,导致货币汇率上升,因...

  • 读书笔记-《世界史就是一部货币史》2-20210210

    1、目前的各国货币汇率的兑换,不是一蹴而就,与世界的经济格局有关; 2、货币的形式,从银币、金币、纸币、电子币; ...

  • 美元升值,新兴市场汇率血雨腥风

    美元升值,新兴市场汇率血雨腥风 连日来,媒体有关“新兴市场货币汇率遭遇了一场惨烈的血雨腥风”的新闻报道充塞互联网路...

  • 套利

    套利(arbitrage),是指投资者或借贷者同时利用两地利息率的差价和货币汇率的差价,流动资本以赚取利润。通常指...

  • flask构建自动化测试平台2-开始头条项目

    2-开始头条项目 代码地址 我们将创建一个头条应用程序,显示最新的新闻标题,天气信息,和货币汇率。 在本章中,我们...

  • 圆月.月缺.匆匆

    这是压抑的一个月...台风、地震的新闻接踵而来,国际间的博弈及瞬息谈笑、股市货币汇率的起伏、企业和市场的变化......

网友评论

    本文标题:货币汇率计算

    本文链接:https://www.haomeiwen.com/subject/zeeyiftx.html