芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/invoicer.pulsehost.co.uk/app/Traits/ExchangeRateProvidersTrait.php
json(); if (array_key_exists('success', $response)) { if ($response['success'] == false) { return respondJson($response['error']['message'], $response['error']['message']); } } return response()->json([ 'exchangeRate' => array_values($response['rates']), ], 200); break; case 'currency_layer': $url = 'http://api.currencylayer.com/live?access_key='.$filter['key']."&source={$baseCurrencyCode}¤cies={$currencyCode}"; $response = Http::get($url)->json(); if (array_key_exists('success', $response)) { if ($response['success'] == false) { return respondJson($response['error']['info'], $response['error']['info']); } } return response()->json([ 'exchangeRate' => array_values($response['quotes']), ], 200); break; case 'open_exchange_rate': $url = 'https://openexchangerates.org/api/latest.json?app_id='.$filter['key']."&base={$baseCurrencyCode}&symbols={$currencyCode}"; $response = Http::get($url)->json(); if (array_key_exists('error', $response)) { return respondJson($response['message'], $response['description']); } return response()->json([ 'exchangeRate' => array_values($response['rates']), ], 200); break; case 'currency_converter': $url = $this->getCurrencyConverterUrl($filter['driver_config']); $url = $url.'/api/v7/convert?apiKey='.$filter['key']; $query = "{$baseCurrencyCode}_{$currencyCode}"; $url = $url."&q={$query}".'&compact=y'; $response = Http::get($url)->json(); return response()->json([ 'exchangeRate' => array_values($response[$query]), ], 200); break; } } public function getCurrencyConverterUrl($data) { switch ($data['type']) { case 'PREMIUM': return 'https://api.currconv.com'; break; case 'PREPAID': return 'https://prepaid.currconv.com'; break; case 'FREE': return 'https://free.currconv.com'; break; case 'DEDICATED': return $data['url']; break; } } public function getSupportedCurrencies($request) { $message = 'Please Enter Valid Provider Key.'; $error = 'invalid_key'; $server_message = 'Server not responding'; $error_message = 'server_error'; switch ($request->driver) { case 'currency_freak': $url = 'https://api.currencyfreaks.com/currency-symbols'; $response = Http::get($url)->json(); $checkKey = $this->getUrl($request); if ($response == null || $checkKey == null) { return respondJson($error_message, $server_message); } if (array_key_exists('success', $checkKey) && array_key_exists('error', $checkKey)) { if ($checkKey['error']['status'] == 404) { return respondJson($error, $message); } } return response()->json(['supportedCurrencies' => array_keys($response)]); break; case 'currency_layer': $url = 'http://api.currencylayer.com/list?access_key='.$request->key; $response = Http::get($url)->json(); if ($response == null) { return respondJson($error_message, $server_message); } if (array_key_exists('currencies', $response)) { return response()->json(['supportedCurrencies' => array_keys($response['currencies'])]); } return respondJson($error, $message); break; case 'open_exchange_rate': $url = 'https://openexchangerates.org/api/currencies.json'; $response = Http::get($url)->json(); $checkKey = $this->getUrl($request); if ($response == null || $checkKey == null) { return respondJson($error_message, $server_message); } if (array_key_exists('error', $checkKey)) { if ($checkKey['status'] == 401) { return respondJson($error, $message); } } return response()->json(['supportedCurrencies' => array_keys($response)]); break; case 'currency_converter': $response = $this->getUrl($request); if ($response == null) { return respondJson($error_message, $server_message); } if (array_key_exists('results', $response)) { return response()->json(['supportedCurrencies' => array_keys($response['results'])]); } return respondJson($error, $message); break; } } public function getUrl($request) { switch ($request->driver) { case 'currency_freak': $url = 'https://api.currencyfreaks.com/latest?apikey='.$request->key.'&symbols=INR&base=USD'; return Http::get($url)->json(); break; case 'currency_layer': $url = 'http://api.currencylayer.com/live?access_key='.$request->key.'&source=INR¤cies=USD'; return Http::get($url)->json(); break; case 'open_exchange_rate': $url = 'https://openexchangerates.org/api/latest.json?app_id='.$request->key.'&base=INR&symbols=USD'; return Http::get($url)->json(); break; case 'currency_converter': $url = $this->getCurrencyConverterUrl($request).'/api/v7/currencies?apiKey='.$request->key; return Http::get($url)->json(); break; } } }